![](/img/trans.png)
[英]FTP upload file to distant server with CURL and PHP uploads a blank file
[英]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.