解決方案,您應該使用'文件'=> '@'和curl_setopt($ curl_handle,CURLOPT_SAFE_UPLOAD,FALSE);
工作和測試上PHP 5.6+示例:
服務器端(index.html的):
<!DOCTYPE html>
<html>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
Select file to upload:
<input type="file" name="myf" id="myf">
<input type="submit" value="Upload" name="submit">
</form>
</body>
</html>
服務器端(upload.php的):
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
echo $_FILES["myf"]["tmp_name"];
move_uploaded_file($_FILES["myf"]["tmp_name"], 'f.dat');
?>
客戶端(curl-test.php),您需要:
<?php
$args['myf'] = '@/Users/Oleg/Temp/curl-test-php/example.txt';
$request = curl_init('http://domain.ru/upload/upload.php');
curl_setopt($request, CURLOPT_SAFE_UPLOAD, false);
curl_setopt($request, CURLOPT_POST, true);
curl_setopt($request, CURLOPT_POSTFIELDS, $args);
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);
curl_close($request);
?>
https://wiki.php.net/rfc/curl-file-upload 約CURLOPT_SAFE_UPLOAD和正確的方法,如果你需要安全的解決方案
它不工作,如果我添加@最初的文件路徑 –
的你用什麼「文件」或「FILEDATA」使用未過時方法在數組中作爲一個關鍵? – Oleg
yes是一個關鍵字,並保存文件路徑 –