我正在实现与API的集成,并且根据文档中的示例,我需要使用-T/--upload-file
发布文件。
curl -u "username:password" -0 –X POST -T filename.txt -H "Content-Type: text/plain" "http://url"
我的解决方案:
$fp = fopen('/home/myFile.txt', 'rb');
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize('/home/myFile.txt'));
但问题是CURLOPT_INLINE仅在使用PUT时有效,而示例则使用POST。
我已经看到了以下解决方案,但我不认为这是我应该使用的,因为它似乎与-T
不同。我没有在文档中看到任何关键名称的提及。
curl_setopt($c, CURLOPT_POST, true);
curl_setopt($c, CURLOPT_POSTFIELDS, array('file'=>'@/home/myFile.pdf'));
有没有办法正确地做到这一点?
答案 0 :(得分:0)
如果您将--libcurl code.c
添加到curl命令行,您将确切地看到它使用了哪些libcurl选项,然后您会看到{I}是您在解决方案中错过的模拟该命令的内容线。即CURLOPT_CUSTOMREQUEST
方法将采用并默认为PUT,但您可以覆盖它。