cURL如何上传文件?

Posted

技术标签:

【中文标题】cURL如何上传文件?【英文标题】:How does cURL upload a file? 【发布时间】:2012-03-16 14:45:20 【问题描述】:

我正在尝试将图像发布到 imageshack.us 并找到一个运行良好的 php curl 脚本,除了该脚本是针对文件系统上的文件编写的。我已经将图像数据保存在 php 变量中,因此必须将其写入文件只是为了让 curl 读取它并发布帖子似乎很愚蠢。

我只是想知道是否可以通过自己将图像数据传递给 curl 来实现相同的最终结果?

这是它目前的做法:

$post['fileupload'] = "@".$filename;
...
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
...

【问题讨论】:

您可以将图像数据通过管道传输到 cURL,但我一时想不起来正确的命令行参数(或 PHP 函数)。 有什么方法可以读取最终的原始 http 请求 curl 构造吗?如果我能看到它在做什么,那可能会让我弄清楚。 us3.php.net/manual/en/function.curl-getinfo.php - curl_getinfo() 至少可用于获取标题信息(请参阅 CURLINFO_HEADER_OUT)。但要获得整个请求,我认为你必须走伊格纳西奥的路线。 【参考方案1】:

为了回答我自己的问题,以下是我如何设法将完整的 curl 请求输出到文件,以便我可以看到它是如何构建原始请求的:

curl --trace-ascii curltrace.txt --header "Connection: close" --form "fileupload=@bug.png" --form "key=thisismykey" http://www.imageshack.us/upload_api.php

这最终极大地帮助了我,以防其他人可以从中受益。

【讨论】:

以上是关于cURL如何上传文件?的主要内容,如果未能解决你的问题,请参考以下文章

PHP如何通过CURL上传文件

cURL如何上传文件?

如何使用在服务器中创建目录的 curl 上传文件

如何使用 curl 自动上传和签入文件到共享点?

如何使用curl使用php上传文件[关闭]

如何将 curl 上传进度发送到要显示的 ajax