gpt4 book ai didi

php - 如何通过流式传输文件使用 PHP、curl 和 HTTP POST 上传文件?

转载 作者:搜寻专家 更新时间:2023-10-31 20:53:22 25 4
gpt4 key购买 nike

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

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

我成功地使用了多部分 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 header,但没有成功。

虽然它适用于多部分,但我需要一个原始的 POST 请求,没有多部分:

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

最佳答案

PHP/CURL 绑定(bind)支持 CURLOPT_READFUNCTION 选项,它允许您传递数据以使用该回调逐 block 发送。

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

关于php - 如何通过流式传输文件使用 PHP、curl 和 HTTP POST 上传文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5260985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com