我試圖使用以下PHP代碼將文件上傳到Redmine。PHP cURL POST請求 - 上傳過程中文件損壞
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url)
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'Content-Type: application/octet-stream',
'X-Redmine-API-Key: ' . $apiKey));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_BINARYTRANSFER, TRUE);
$data = array('file' => '@' . $filePath);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
curl_setopt($curl, CURLOPT_POST, 1);
$token = curl_exec($curl);
該請求返回一個有效的上傳令牌,但該文件在上載過程中損壞。試圖上傳,例如,一個空的.txt文件導致上傳的覆蓋.txt文件現在包含以下行。
------------------------------ dde946a683ac
內容處置:形狀數據; NAME = 「文件」; filename =「/ var/www/wp-content/uploads/redmine_uploads/emptyTextFile.txt」 Content-Type:application/octet-stream
--------------- --------------- dde946a683ac--
任何想法爲什麼發生這種情況?
排除'CURLOPT_BINARYTRANSFER'和編輯 '$ data = array('name'=>'emptyTextFile','file'=>'@'。$ filePath);' 仍導致一個損壞的文件現在包含行 ------------------------------ a943ac000d23 Content-Disposition:form-data; name =「name」 emptyTextFile ------------------------------ a943ac000d23 Content-Disposition:form-data; NAME = 「文件」; filename =「/ var/www/wp-content/uploads/redmine_uploads/emptyTextFile.txt」 Content-Type:application/octet-stream ----------------- ------------- a943ac000d23-- –