[英]What is the cURL -T option in PHP
我正在嘗試使用CDN將cli -T選項轉換為PHP代碼發布到文件服務中,但是我真的不知道等效項是什么,或者將復制它的相應代碼是什么。 我已經在CURLOPT_HTTPHEADER周圍看到了一個選項,但這似乎與其他標頭不兼容。
我要復制的確切內容是:
curl -XPUT -T "test.png" -v -H "X-Auth-Token:MYTOKEN" -H"Content-Type: text/plain" "https://somecdn.com"
我認為是這樣的,但我不確定:
$ch = curl_init();
// Set up the options
curl_setopt($ch, CURLOPT_URL, "https://mycdn.com/test.txt");
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"X-Auth-Token: mytoken",
"Content-type: text/plain"
)
);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("file" => "@test.txt") );
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
我想我很驚訝-T標志沒有類似的curl_setopt。
所以確切的問題是這樣的:
在PHP中復制cURL CLI -T "test.png"
的正確方法是什么?
考慮到不建議使用PHP 5.5這樣上傳文件(@filename)。
另外,PHP 5.5引入了有關上傳過程的新選項/標志,由CURLOPT_SAFE_UPLOAD
調用:
為TRUE可禁用對@前綴的支持,以在CURLOPT_POSTFIELDS中上傳文件,這意味着可以安全地將以@開頭的值作為字段傳遞。 CURLFile可以代替上傳。
在PHP 5.5.0中添加,默認值為FALSE 。 PHP 5.6.0將默認值更改為TRUE。
因此,如果您使用PHP 5.5以上版本,則必須將CURLOPT_SAFE_UPLOAD設置為false(盡管5.5默認情況下為false
:
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
另一種選擇是使用CURLFile類。
請記住:文件名必須是絕對路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.