繁体   English   中英

如何通过流式传输文件上传PHP,curl和HTTP POST文件?

[英]How to upload a file with PHP, curl and HTTP POST by streaming the file?

假设我有一个大文件,我希望使用PHP和curl将HTTP POST发送到Web服务。 该文件大于我可以让PHP使用的内存量。

基本上我正在寻找一种直接将文件内容流式传输到卷曲的方法,而无需将整个文件读入内存。

我成功使用多部分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请求,没有多部分:

$post['file'] = "@large.jpg";
curl_setopt($c, CURLOPT_POSTFIELDS, $post);

PHP / CURL绑定支持CURLOPT_READFUNCTION选项,该选项允许您使用该回调传递数据以发送chunk-by-chunk。

几乎与此C示例中显示的逻辑完全相同: http//curl.haxx.se/libcurl/c/post-callback.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM