#1 2011-09-25 21:04:20

cheb
Endora uživatel
Registrován: 2011-08-01
Příspěvky: 3

Re: Nefungující funkce ftp_put();

Zdravím Vás,
na mém webu používám script na ftp přenos souborů. Na localhostu i na předchozím free hostingu tento script normálně běží, ale zde se mi vypíše chybová hláška:

Warning: ftp_put(): cilova_adresa/nazev_souboru.pripona: No such file or directory in /home/users/jmeno_uzivatele/adresa_webu/web/ftp_upload.php on line 92 FTP upload has encountered an error!

Soubor načítám klasicky z formuláře:

<form action="ftp_upload_test_.php" method="POST" enctype="multipart/form-data">
<input name="server" value="srv5.endora.cz">...
...
</form>

Výtah z kódu:

$paths=$_POST['pathserver'];
 
$filep=$_FILES['userfile']['tmp_name'];
 
$ftp_server=$_POST['server'];
 
$ftp_user_name=$_POST['user'];
 
$ftp_user_pass=$_POST['password'];
 
$name=$_FILES['userfile']['name'];
 
// set up a connection to ftp server
$conn_id = ftp_connect($ftp_server);
 
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
 
// check connection and login result
if ((!$conn_id) || (!$login_result)) {
       echo "FTP connection has encountered an error!";
       echo "Attempted to connect to $ftp_server for user $ftp_user_name....";
       exit;
   } else {
       echo "Connected to $ftp_server, for user $ftp_user_name".".....";
   }
 
// upload the file to the path specified
$upload = ftp_put($conn_id, $paths.'/'.$name, $filep, FTP_BINARY);
 
// check the upload status
if (!$upload) {
       echo "FTP upload has encountered an error!";
   } else {
       echo "Uploaded file with name $name to $ftp_server ";
   }
 
// close the FTP connection
ftp_close($conn_id);	
 
}

Nevíte prosím někdo, kde může být problém? Děkuji.

Offline

#2 2011-09-26 10:17:22

kyborek
Člen
Registrován: 2011-06-08
Příspěvky: 78
Web

Re: Nefungující funkce ftp_put();

No such file or directory prostě znamená že ten soubor nebo složka neexistuje takže máš zřejmě špatně tu adresu kterou jsi cenzuroval? Mohl bys prosím zkopírovat přesné znění toho erroru?


Robotická online hra zdarma: Bamgame.net

Offline

#3 2011-09-26 16:34:48

cheb
Endora uživatel
Registrován: 2011-08-01
Příspěvky: 3

Re: Nefungující funkce ftp_put();

Cílová adresa je v pořádku, při volání funkce var_dump(is_dir($paths)); mi odpovi true. opravdu jsem zkoušel včera snad úplně všechno... Není možné, že má server Endora tuto funkci deaktivovanou? Jinak cilovou slozku mám s atributy 0777. Opravdu už jsem zoufalej...
Budu rád za jakoukoli pomoc.

Offline

#4 2011-09-26 17:20:08

cheb
Endora uživatel
Registrován: 2011-08-01
Příspěvky: 3

Re: Nefungující funkce ftp_put();

Tak už jsem na to přišel (aspoň doufám  smile )

Jelikož soubory webu jsou v podložce /web, která se navenek jeví jako kořenová, tak se pro výše uvedený zdroják musí upravit tyto řádky:

$paths='hvezdacheb.4fan.cz/web/'.$_POST['pathserver']; // nazev webu musí být bez www., http://, ftp://, jinak přenos FTP selže.
...
// set up a connection to ftp server
$conn_id = ftp_connect($ftp_server);
 
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// check connection and login result
if ((!$conn_id) || (!$login_result)) {
       echo "FTP connection has encountered an error!";
       echo "Attempted to connect to $ftp_server for user $ftp_user_name....";
       exit;
   } else {
       echo "Connected to $ftp_server, for user $ftp_user_name".".....";
   }
 
$upload = ftp_put($conn_id, $paths.'/'.$name, $filep, FTP_BINARY); // nebo FTP_ASCII, na funkci rostlináře nemá vliv ;-)

// check the upload status
if (!$upload) {
       echo "FTP upload has encountered an error!";
       echo ftp_pwd($conn_id);
   } else {
       echo "Uploaded file with name $name to $ftp_server ";
   }
 
// close the FTP connection
ftp_close($conn_id);	

Věřím, že to jistě ještě někomu poslouží. :-)

Offline

Zápatí

Založeno na FluxBB | CZ a SK