如何在PHP中使用curl-T/--upload文件和POST?

如何在PHP中使用curl-T/--upload文件和POST?,php,curl,file-upload,Php,Curl,File Upload,我正在实现与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

我正在实现与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'));
有没有正确的方法?

如果您将
--libcurl code.c
添加到curl命令行,您将确切地看到它使用了哪些libcurl选项,然后您将看到
CURLOPT_CUSTOMREQUEST
是您在模拟该命令行的解决方案中遗漏的内容。即
CURLOPT\u infle
方法将假定并默认为PUT,但您可以覆盖它。

如果将
--libcurl code.c
添加到curl命令行,您将确切看到它使用了哪些libcurl选项,然后您将看到
CURLOPT_CUSTOMREQUEST
是您在模拟该命令行的解决方案中遗漏的内容。即
CURLOPT_infle
方法将假定并默认为PUT,但您可以覆盖它