View Full Version : [php] download da ftp
è possibile effetturare il download da un server ftp senza usare la funzione ftp_get ma utilizzando una finestra "salva con nome" per poter salvare il file dove si vuole?se no tramite ftp_get come potrei fare per far scegliere all'utente dove salvare il file che vuole scaricare?
grazie&Ciao :)
Sì...se sono caricati le opportune opzioni puoi fare una lettura di un file mettendo il link nelle stesse funzionic he usi per leggere un file...
Ad esempio:
<?php
$filename=""; // the name the file will have on client computer
$file_to_download=""; // the name the file has on the server (or an FTP or HTTP request)
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/octet-stream");
header( "Content-Disposition: attachment; filename=\"$filename\"");
header( "Content-Description: File Transfert");
@readfile($file_to_download);
?>
allora ho fatto così
$ftp_server = "";
$ftp_user_name = "";
$ftp_user_pass = "";
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
ftp_pasv($conn_id, TRUE);
if ((!$conn_id) || (!$login_result)) {
echo "La connessione FTP è fallita!";
echo "Tentativo di connessione a $ftp_server per l'utente $ftp_user_name";
die;
} else {
echo "Connesso a $ftp_server, utente $ftp_user_name";
}
// upload del file
$newdir = ftp_chdir($conn_id, "/Desktop");
$filename="1.jpg"; // the name the file will have on client computer
$file_to_download="1.jpg"; // the name the file has on the server (or an FTP or HTTP request)
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/octet-stream");
header( "Content-Disposition: attachment; filename=\"$filename\"");
header( "Content-Description: File Transfert");
@readfile($file_to_download);
// chiudere il flusso FTP
ftp_quit($conn_id);
però mi dava l'errore dell'header già inviato,allora ho aggiunto ob_start(); all'inizio dello script...ma non va lo stesso non mi fa scaricare nulla...dov'è l'errore?
ciao:)
Prima di inviare gli header non devi dare alcun ouput...
La tua pagina deve iniziare con <?php sulla prima linea ;)
Ah...ma readfile non funziona facendo prima il login...è chiaro che non funzioni !!!
Prova a scrivere esattamente quello che ho scritto io sopra mettendo l'indirizzo del file da scaricare (passato alla readfile) in questo modo:
ftp://$ftp_user_name:$ftp_user_pass@$ftp_server/Desktop/$file_to_download
Originariamente inviato da cionci
Ah...ma readfile non funziona facendo prima il login...è chiaro che non funzioni !!!
Prova a scrivere esattamente quello che ho scritto io sopra mettendo l'indirizzo del file da scaricare (passato alla readfile) in questo modo:
ftp://$ftp_user_name:$ftp_user_pass@$ftp_server/Desktop/$file_to_download
ok perfetto..così funziona alla grande..
grazie..ciao!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.