• Moderatore

    Script FTP

    Ciao a tutti, chiedo il vostro consiglio per l'uso di uno script di upload via FTP.

    Devo uploadare delle immagini da un'area riservata del sito web di un cliente, hosting win, e l'unico modo in cui funge è usare la funzione ftp_fput.

    Però mi uploada l'immagine nella directory principale del sito. E' possibile in qualche modo impostare la cartella di upload?

    Vi posto lo script...

    
    foreach($HTTP_POST_VARS as $key=>$val)
    {
    if($val=="" or !$val)
    {
    print "<font face=\"arial\" size=\"2\">Il campo $key è vuoto
    <a href=\"javascript:history.back&#40;&#41;\">indietro</a></font>";
    exit&#40;&#41;;
    &#125;
    &#125;
    $ftp_connect=@ftp_connect&#40;$host,$porta&#41;;
    if&#40;!$ftp_connect&#41;
    &#123;
    print "<font face=\"arial\" size=\"2\">Connessione fallita al server $host
    <a href=\"javascript&#58;history.back&#40;&#41;\">indietro</a></font>";
    exit&#40;&#41;;
    &#125;
    $ftp_login=@ftp_login&#40;$ftp_connect,$username,$password&#41;;
    if&#40;!$ftp_login&#41;
    &#123;
    print "<font face=\"arial\" size=\"2\">Login fallito
    <a href=\"javascript&#58;history.back&#40;&#41;\">indietro</a></font>";
    exit&#40;&#41;;
    &#125;
    //copia il file da inviare
    $fp=@fopen&#40;$fupload,"r"&#41;;
    if&#40;!$fp&#41;
    &#123;
    print "<font face=\"arial\" size=\"2\">Impossibile aprire il file selezionato
    <a href=\"javascript&#58;history.back&#40;&#41;\">indietro</a></font>";
    exit&#40;&#41;;
    &#125;
    //lo spedisce via ftp
    @ftp_fput&#40;$ftp_connect,$fupload_name,$fp,FTP_BINARY&#41; or die&#40;"<font face=\"arial\" size=\"2\">Impossibile spedire il file
    <a href=\"javascript&#58;history.back&#40;&#41;\">indietro</a></font>"&#41;;
    echo "<font face=\"arial\" size=\"2\">Il file $fupload_name, peso $fupload_size, è stato uploadato con successo</font>";
    fclose&#40;$fp&#41;;
    ftp_quit&#40;$ftp_connect&#41;;
    
    

    Grazie a tutti... :ciauz:


  • User Newbie

    Ciao io ho usato il seguente script e tutto funziona bene.

    $ftp_server=(path che vuoi sul server);
    $ftp_user_name=username;
    $ftp_user_pass=pwd;
    $destination_file=(nome che vuoi dare al file uplodato);
    $source_file=(nome del file sorgente);

    		// stabilire una connessione
    		$conn_id = @ftp_connect($ftp_server); 
    		
    		// login con user name e password
    		$login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); 
    		
    		// controllo della connessione
    		if ((!$conn_id) || (!$login_result)) { 
    		        $report_ftp=" La connessione FTP è fallita! ";
    		        $report_ftp.=" Tentativo di connessione a **$ftp_server** per l'utente **$ftp_user_name**."; 
    		        //die; 
    		    } else {
    		        $report_ftp.="Connesso a **$ftp_server**, utente **$ftp_user_name**.";
    		    }
    		
    		// upload del file
    		$upload = @ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY); 
    		
    		// controllo dello stato di upload
    		if (!$upload) { 
    		        $report_ftp.=" Il caricamento FTP non è andato a buon fine!";
    		    } else {
    		       $report_ftp.=" Caricato il file **$source_file** su **$ftp_server** come **$destination_file**";
    		    }
    		
    		// chiudere il flusso FTP 
    		@ftp_quit($conn_id);
    

    Saluti,
    Matteo


  • Moderatore

    Perfetto, grazie mille!! 😄