Problema con comandi FTP

  • Creatore Discussione Creatore Discussione lukas!
  • Data di inizio Data di inizio

lukas!

Nuovo Utente
6 Mag 2008
26
0
0
Salve a tutti, sono un neofita di PHP.
Seguendo uno degli ottimi tutorial presenti sul sito, stavo cercando di collegare un sito in hosting su aruba, con un server FTP presente in ufficio. Il codice da me utilizzato è il seguente:

<?
// impostiamo l'host FTP a cui connetterci
$ftp_host = "xx.xx.xxx.xxx";

// impostiamo user e pass per l'accesso FTP
$ftp_user = "xxxxxxxxx";
$ftp_pass = "xxxxxxxxx"

// impostiamo la connessione al server
$myconn = ftp_connect($ftp_host); LINEA 17 INDICATA NELL'ERRORE

// effettuiamo login con user e pass
$mylogin = ftp_login($conn_id, $ftp_user, $ftp_pass);

// controlliamo se la connessione è OK...
if ((!$myconn) or (!$mylogin))
{
echo "Connessione fallita a " . $ftp_host . "!";
die;
}
else
{
echo "Connesso a " . $ftp_host . " - utente " . $ftp_user . "!";
}

// impostiamo il percorso fisico del file da inviare al server
$source_file = "C:\test.pdf";

// impostiamo il percorso e nome per il file caricato
$destination_file = "/file.pdf";

// upload del file
$upload = ftp_put($myconn, $destination_file, $source_file, FTP_BINARY);

// controllo dello stato di upload
if (!$upload)
{
echo "Non riuscito :-(";
}
else
{
echo "Operazione riuscita :-)";
}

// chiudiamo la connessione FTP
ftp_quit($myconn);
?>

solo che al momento di caricare la pagina sul web ricevo il seguente errore:

Parse error: parse error in D:\Inetpub\webs\xxxxxxxx\public\ftp2.php on line 17

La linea 17 è indicata nel codice che ho postato sopra.
Da cosa dipende questo errore e come si risolve? Spero che qualcuno possa aiutarmi.

Grazie a tutti......
 
l'errore non è alla riga 17, ma qui:
PHP:
$ftp_pass = "xxxxxxxxx"
manca il punto e virgola finale:
PHP:
$ftp_pass = "xxxxxxxxx";
 
Grazie mille....è vero.....si vede che non ho l'occhio del programmatore :dipser:

Ma mi tocca ancora approfittare della tua gentilezza o di quella di quanlcun'altro in quanto ora la connessione la effettua correttamente (nella riga di connessione ho dovuto sostituire conn_id con myconn), solo che al momento di trasferire il file ricevo questo errore:

Warning: ftp_put(C: est.pdf) [function.ftp-put]: failed to open stream: Invalid argument in D:\Inetpub\webs\xxxxxxxx\public\ftp2.php on line 40
Non riuscito :-(

Da notare come mi vede il file di origine come "C: est.pdf" invece che "C:\test.pdf".
Se sostituisco "C:\test.pdf" con "C:/test.pdf" il percorso del file me lo riporta correttamente ma l'errore non cambia........

Cosa c'è stavolta di errato?
 
metti il file test.pdf sullo stesso percorso del file PHP per l'Ftp e modifica:
PHP:
$source_file = "test.pdf";
se funziona allora è un problema di percorso
 
Grandioso!!!!!! Funziona!!!!!!!!!!

Era un problema di percorsi, o forse di permessi per andarsi a prendere il file in C:, in quanto la il file c'era......comunque l'importante è aver risolto. Noto però un po di lentezza nel trasferimento. Se mi collego con un programmino ftp viaggio intorno ai 30 Kb/s, mentre così vado al max a 7. Notavo nel log del server ftp che connettendomi con un ftp la connessione si attiva in Passive Mode e utilizza la Porta21, mentre collegandomi con lo script tali messaggi non me li da. Secondo te se abilito il Passive Mode e specifico la porta (ho visto che c'è del codice apposito), ottengo un miglioramento della velocità???

Cmq grazie mille per l'aiuto direi fondamentale che mi hai dato.....:fonzie:
 
Teoricamente dovrebbe essere più veloce modificando la modalità e specificando la porta, ma molto dipende dalla disponibilità di banda.
 
Ok grazie mille dell'aiuto che mi hai dato, sei stato gentilissimo oltre che conciso e preciso......
Vedrò di provare specificando modalità e porta al momento della connessione....
 

Discussioni simili