簡體   English   中英

CURL通過FTP上傳空白文件

[英]CURL uploads blank file by FTP

我正在使用此curl腳本嘗試通過FTP上傳用戶選擇的文件。 它將文件上傳到服務器,但它們都是空白。 為什么會這樣呢?

if (!empty($_FILES['userfile']['name'])) {
    $ch = curl_init();
    $localfile = $_FILES['upload']['tmp_name'];
    $fp = fopen($localfile, 'r');
    curl_setopt($ch, CURLOPT_URL, 'ftp-addy-here'.$_FILES['userfile']['name']);
    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.';
        }
 } else {
        $error = 'Please select a file.';
 }

echo $error;

第3行,現在顯示:

$localfile = $_FILES['upload']['tmp_name'];

更改為:

$localfile = $_FILES['userfile']['tmp_name'];

您沒有檢查初始文件上傳是否成功。 檢查遠程文件名是否存在並不表示它已上傳。 確保上傳成功的100%可靠方法是

if ($_FILES['userfile']['error'] === UPLOAD_ERR_OK) {
  ... ftp stuff ...
} else {
    die("Upload failed with error code: {$_FILES['userfile']['error']}");
}

此處記錄了代碼/常量: http : //php.net/manual/en/features.file-upload.errors.php

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM