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如何上传文件?的主要内容,如果未能解决你的问题,请参考以下文章