可以說我有一個很大的文件,我想通過PHP和curl將HTTP POST發送到webservice。該文件大於我可以讓PHP使用的內存量。如何通過流式傳輸文件使用PHP,curl和HTTP POST上傳文件?
基本上我正在尋找一種方法來直接流動文件的內容來捲曲,而無需將整個文件讀入內存。
我已經成功地使用了多部分POST和PUT,但沒有使用POST上傳「二進制數據」。
我想在PHP中實現的是這個命令行所做的:
$ curl -X POST -H "Content-Type: image/jpeg" \
--data-binary "@large.jpg" "http://example.com/myservice"
嘗試了很多的選項與curl_setopt,如INFILE,POSTFIELDS,Content-Type頭,但沒有運氣。
它與多,雖然,但我需要一個原始POST請求,沒有multipart內容:
$post['file'] = "@large.jpg";
curl_setopt($c, CURLOPT_POSTFIELDS, $post);
在這種情況下你可能最好的一個自定義的fsockopen塊。它只需要一個POST頭部blob,以及fread/fwrite的簡單循環。 – mario 2011-03-10 14:32:26
任何原因你不能只是SCP文件? PECL有一個ssh庫.. – 2011-03-10 14:33:40