Frage Hochladen der Datei über FTP mit PHP


Ich bin gespannt, wie man Dateien per FTP mit PHP hochlädt. Nehmen wir an, ich habe das Formular hochgeladen und der Benutzer hat eine Datei hochgeladen. Wie übertrage ich die Datei (ohne aus dem temporären Verzeichnis zu wechseln) auf einen FTP-Host mit PHP?


13
2017-12-02 12:58


Ursprung


Antworten:


Bitte schön:

$ftp = ftp_connect($host,$port,$timeout);
ftp_login($ftp,$user,$pass);

$ret = ftp_nb_put($ftp, $dest_file, $source_file, FTP_BINARY, FTP_AUTORESUME);

while (FTP_MOREDATA == $ret)
    {
        // display progress bar, or someting
        $ret = ftp_nb_continue($ftp);
    }

// all done :-)

Die Fehlerbehandlung wurde der Kürze wegen weggelassen.


21
2017-12-02 13:03



Hier ist ein Codebeispiel

 $ftp_server="";
 $ftp_user_name="";
 $ftp_user_pass="";
 $file = "";//tobe uploaded
 $remote_file = "";

 // set up basic connection
 $conn_id = ftp_connect($ftp_server);

 // login with username and password
 $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

 // upload a file
 if (ftp_put($conn_id, $remote_file, $file, FTP_ASCII)) {
    echo "successfully uploaded $file\n";
    exit;
 } else {
    echo "There was a problem while uploading $file\n";
    exit;
    }
 // close the connection
 ftp_close($conn_id);

15
2017-12-02 13:06



Hier ist eine Funktion, um es für Sie zu tun.

function uploadFTP($server, $username, $password, $local_file, $remote_file){
    // connect to server
    $connection = ftp_connect($server);

    // login
    if (@ftp_login($connection, $username, $password)){
        // successfully connected
    }else{
        return false;
    }

    ftp_put($connection, $remote_file, $local_file, FTP_BINARY);
    ftp_close($connection);
    return true;
}

Verwendung:

uploadFTP("127.0.0.1", "admin", "mydog123", "C:\\report.txt", "meeting/tuesday/report.txt");

6
2017-08-29 16:31



Wie wäre es mit dem Hochladen über Curl? (Hinweis: Sie können auch Curl für SFTP, FTPS verwenden)

<?php

$ch = curl_init();
$localfile = '/path/to/file.zip';
$remotefile = 'filename.zip';
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, 'ftp://ftp_login:password@ftp.domain.com/'.$remotefile);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_exec ($ch);
$error_no = curl_errno($ch);
curl_close ($ch);
if ($error_no == 0) {
    $error = 'File uploaded succesfully.';
} else {
    $error = 'File upload error.';
}

?>

4
2017-08-02 19:40



Sieh dir die. An FTP-Bereich auf der PHP-Website - es ist sehr hilfreich.


2
2017-12-02 13:01