Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Upload file tramite ftp e form

    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($Connectiontrue);
                if (!
    $Login)
                {
                    echo 
    "Login fallito!";
                    die();
                }
                    else
                    {
                        echo 
    "Login ok.";
                    }
                if(
    ftp_put($Connection$NomeCompleto$LocalFileFTP_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 ??
    Ho letto la Bibbia recentemente, non male, peccato però che il personaggio principale sia poco credibile (Woody Allen)

  2. #2
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Non vorrei aver capito male il problema: a te serve che il trasferimento tra il client che inserisce il file e il tuo server sia attraverso il protocollo ftp? se la risposta è si purtroppo mi sa che hai sbgliato approcio...

  3. #3
    Non vorrei aver capito male il problema: a te serve che il trasferimento tra il client che inserisce il file e il tuo server sia attraverso il protocollo ftp? se la risposta è si purtroppo mi sa che hai sbgliato approcio...
    si, ho bisogno di far uploadare i file tramite ftp, con il php si può fare. Perchè pensi che abbia sbagliato approccio?
    Ho letto la Bibbia recentemente, non male, peccato però che il personaggio principale sia poco credibile (Woody Allen)

  4. #4
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Perchè con il codice che hai realizzato serve per connettersi a un server e inviargli un file, non a quello che devi fare tu

  5. #5
    Fammi capire se ho capito bene: il php gestisce l'FTP nel senso che se voglio io mandare un file in un server remoto posso usare indifferentemente una pagina php tipo quella che ho scritto oppure un client FTP (tipo FileZilla per intenderci).
    Questo però non mi permette di creare un form con dei input (tra i quali uno del tipo type=file) dove qualsiasi utente che arriva a quella pagina può uploadare un file tramite FTP (praticamente come si fa con file di piccole dimensioni in http con
    Codice PHP:
    copy($_FILES["FileDownload"]["tmp_name"], $FileSulServer); 
    Ho capito bene?

    Quindi se è così l'unica sarebbe realizzare una piccola applicazione esterna, tipo in java o .net.
    Ho letto la Bibbia recentemente, non male, peccato però che il personaggio principale sia poco credibile (Woody Allen)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.