kako to najbolje riješiti? jer bi volio da na svakoj domeni ima uploadana slika a ne da se linka na nju. Da li je to uopće moguće? Da li to napraviti kao cron job? Ili preko curla? Neka druga ideja? Hvala
Ja sam to napravio FTP-om (imaš php funkciju).
Evo ti i funkcije koju sam si sklepao za taj “poduhvat”.
<?php
// ******************************************************************************************
// Jednostavna FTP upload funkcija - [email protected]
//
// Koristenje:
//
// Primjer: datoteka koju zelite podici zove se 'slika.jpg' i nalazi se
// u folderu 'images/' koji je u istom rootu kao i stranica
// na kojoj se nalazi ova funkcija.
// Domena na koju zelite uploadirati tu sliku je 'ftp.site.com'
// korisnicko ime je 'korisnik', zaporka je 'zaporka'
// a folder u koji zelite uploadirati zove se 'pictures' i
// nalazi se u rootu domene:
//
// FtpUpload ("ftp.site.com","pictures/", "images/slika.jpg", "korisnik", "zaporka");
//
//
// U slucaju greske funkcija vraca sljedece vrijednosti:
// -----------------------------------------------------------------------------------------
// -1 = Nisu poslane sve obavezne varijable prilikom pozivanja funkcije
// 0 = Upload nije uspio (svi drugi razlozi)
// 1 = Upload uspjesno izvrsen
// 2 = Neuspjelo spajanje na FTP server
// 3 = Neuspjeli login na server (pogresno korisnicko ime ili zaporka)
// ******************************************************************************************
function FtpUpload($host,$path,$local_file,$user,$password)
{
//provjeri jesu li poslane sve trazene varijable
if (empty($host) || empty ($path) || empty ($local_file) || empty ($user))
{
return -1;
}
if (!$conn_id_ftp = ftp_connect($host, 21))
{
return 2;
}
if (!ftp_login($conn_id_ftp, $user, $password))
{
return 3;
}
// provjeri path, ako nema slash na kraju, dodaj ga
if (substr($path,-1,1)!="/")
{
$path.="/";
}
// default naziv uploadirane datoteke je isto kao i datoteka koja se uploadira
$path.=$local_file;
// sve je OK, kreni sa uploadom
ftp_pasv ($conn_id_ftp, true);
$upload = ftp_put($conn_id_ftp, $path, $local_file, FTP_BINARY);
ftp_close($conn_id_ftp);
if (!$upload)
{
return 0;
}
else
{
return 1;
}
}
// ******************************************************************************************
// kraj funkcije FtpUpload
// ******************************************************************************************
?>
<?php
// Ja sam domene, usernames i passwords stavio u array, te unutar array petlje pozivao ovu funkciju
$status=FtpUpload ("ftp.nekiserver.com","slike/","slika.jpg","TvojFtpUsername","TvojFtpPassword");
echo $status;
// i tu zavrsis petlju
?>
Ako nešto nije jasno, piši.
Ja mislim da je ovo najbolji način.
hvala puno…pogledao sam okvirno i mislim da mi je sve jasno ali sam preumoran za isprobavanje pa sutra isprobam…puno hvala još jednom!
vraća mi grešku
Warning: ftp_put() [function.ftp-put]: Can’t open that file: No such file or directory in /home/domena/public_html/ftp_upload.php on line 57
I za status mi vraća 0
koji bi mogao biti razlog tome? provjerio sam putanje i sve bi trebalo biti ok
linija 57 je
$upload = ftp_put($conn_id_ftp, $path, $local_file, FTP_BINARY);
hvala
a kaže da nema direktorija ili datoteke koju treba podići, ili nema direktorija u koji podižeš datoteku na odredišnom serveru. Provjeri.
E da, može ti biti i da defaultni FTP port na odredišnom serveru nije 21. Provjeri i to.
FTP_BINARY mozda FTP_ASCII? (mozda AUTO ali neznam ima li ta funkcija)
pustio sam na 2 sata sve i stisnuo refresh i sada sve radi možda server je bio blokirao ovaj ip ili nešto slično… hvala još jednom
I drugi put