ciao
avevo fatto un form in un'area riservata che invia informazioni ad un db ed effettua un upload di un file su una cartella del server. Poichè i file in questione erano di piccole dimensioni, avevo optato per l'http.
Adesso invece è comparsa la necessità di uploadare file di dimensioni maggiori (attorno ai 10 mb) e ho deciso quindi di usare l'FTP. Ho impostato la modalità passiva con ftp_pasv($Connection, true);
e il non-limite di tempo con set_time_limit(0);
Per l'FTP ho scritto il classico:
Codice PHP:
$NomeCompleto = 'download/id'.$id.'_'.$NomeFileModificato;
$LocalFile = $_FILES["FileDownload"];
$Server = "ftp.miosito.com";
$User = "*******";
$Pass = "******";
$Connection = ftp_connect($Server);
if (!$Connection)
{
echo "Impossibile connettersi al server $ftp_server!";
die();
}
else
{
echo "Connesso a $Server.\n";
}
$Login = ftp_login($Connection, $User, $Pass);
ftp_pasv($Connection, true);
if (!$Login)
{
echo "Login fallito!";
die();
}
else
{
echo "Login ok.";
}
if(ftp_put($Connection, $NomeCompleto, $LocalFile, FTP_BINARY))
{
echo "$LocalFile trasferito!\n";
}
else
{
echo "Errore durante il trasferimento di $LocalFile\n";
}
ftp_close($conn_id);
Il nome del file in locale (che l'utente seleziona tramite l'input con type=file) lo recupero con $LocalFile = $_FILES["FileDownload"]; dove FileDownload è il nome dell'input. Per il resto ho lasciato tutto tale e quale come era prima quando usavo l'http.
L'errore che mi restituisce è: CGI error, The specified CGI application misbehaved by not returning a complete set of HTTP headers.
Cosa può essere
??