[ duchess @ 28.02.2010. 11:54 ] @
Zdravo! Pokusala sam da napravim skriptu koja ce sa jednog hostinga prebaciti fajlove na neku drugi hosting preko ftp_connect funkcija. Ali nesto mi ne funkcionise najbolje, i ne mogu da pohvatam sta. Naime, pokretanje transfera vrsim preko AJAX-a. Npr. korisnik klikne na dugme i AJAX pokrene skriptu koja se zove bridge.php u kojoj se nalaze pristupni podaci ka serveru i dve funkcije, jedna za citanje fajlova i foldera sa lokalnog hosta i druga funkcija koja te fajlove treba da prekopira preko ftp-a na drugi host. Evo i koda: Code: //funkcija za konektovanje na ftp host function ftp_copy($source_file, $destination_file, $domen_usernameF, $domen_sajtaF, $passwordF) { $ftp_server = "87.106.200.4"; $ftp_user = $domen_usernameF."@".$domen_sajtaF; $ftp_password = $passwordF; $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user, $ftp_password); if((!$conn_id) || (!$login_result)) { $greska.="FTP connection has failed!<br />"; $greska.="Attempted to connect to $ftp_server for user $ftp_user<br />"; exit(); } exit("Attempted to connect to $ftp_server for user $ftp_user<br />"); if( is_dir($source_file) ) { if(!file_exists($destination_file)) { ftp_mkdir($conn_id, $destination_file); } } else { $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); } ftp_close($conn_id); if(!$upload) { $greska.="FTP copy has failed!<br />"; return false; } else { return true; } } function rec_listFiles($from = '.',$novi_fajl, $domen_usernameF, $domen_sajtaF, $passwordF) { if(! is_dir($from)) return false; $files = array(); if( $dh = opendir($from)) { while( false !== ($file = readdir($dh))) { // Skip '.' and '..' if( $file == '.' || $file == '..') continue; $path = $from . '/' . $file; if( is_dir($path) ) { if(!file_exists($novi_fajl."/".$file)) { //mkdir($novi_fajl."/".$file); ftp_copy($novi_fajl."/".$file, $novi_fajl."/".$file, $domen_usernameF, $domen_sajtaF, $passwordF); } $novo=explode("/",$path); $files += rec_listFiles($path,$novi_fajl."/".$novo[2], $domen_usernameF, $domen_sajtaF, $passwordF); } else { $files[] = $path; //if(!copy($path,$novi_fajl."/".$file)) if(!ftp_copy($path, $novi_fajl."/".$file, $domen_usernameF, $domen_sajtaF, $passwordF)) { $greska.="Greška pri kopiranju fajla: <b>".$novi_fajl."/".$file."</b>. Molim da javite administratoru za ovu gresku na [email protected]"; } } } closedir($dh); } return $files; } //izvrsavam transfer fajlova, slika na novi host rec_listFiles($putanja,$newfile, "dmnusername", "mojsajt.com", "dmnuserpass"); Kada izvrsim ovaj skript ne prijavljuje nikakvu gresku, ali fajlovi nisu prebaceni. Molim za neke smernice! Hvala! |