当前位置: 首页 > 知识库问答 >
问题:

导出HTTP POST请求与来自邮递员的文件不工作

古棋
2023-03-14

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://mydomain.nl/po_upload3.php?xlsimport=2',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS => array('plsm_xls_file[]'=> new CURLFILE('/C:/Users/myuser/Documents/vita_debug/201216_FG_PC_68715.xlsx'),'template_id' => '170'),
  CURLOPT_HTTPHEADER => array(
    'cookie: PHPSESSID=509e15pepo3ok80nd74jhdis33;'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

不管用。就像文件没有正确地附加到HTTP请求一样。

编辑:我终于明白了问题是POSTMAN可以访问我的文件系统,但我试图运行导出代码段的远程服务器没有--这是我的一个非常愚蠢的错误。

共有1个答案

刘子实
2023-03-14

我以前遇到过这个问题,虽然从来没有真正的解决方案(即使在PHP bug tracker中),但我能够通过在setopt_array命令中不包含该文件来修复它。

PHP 7.2 CURLFile发出“无效文件名”警告

简而言之,尝试将curlopt_postfields选项从curl_setopt_array调用中删除,并添加以下内容:

curl_setopt($curl, CURLOPT_POSTFIELDS, array('plsm_xls_file[]'=> new CURLFILE('/C:/Users/myuser/Documents/vita_debug/201216_FG_PC_68715.xlsx'),'template_id' => '170'));
 类似资料:
  • 我正在编写一个具有交叉源配置的API 我的websecurity配置有 控制器类 身份验证过滤器检查 匹配。匹配总是变假 我是不是漏掉了什么? 我添加了什么额外的参数吗? 期待着迅速的回应。

  • 在我的Laravel应用程序中,我需要定期使用Guzzle将数据发送到API。 API使用承载令牌进行身份验证,并请求和接受原始JSON。为了进行测试,我使用Postman访问了API,一切都工作得很好。

  • 我用Laravel5开发了一个API RESTful服务(后端),并用Postman测试了它。有几个资源来获取信息与get和POST请求,他们与邮递员工作得很好。我开始用Jersey的Java客户机测试API。GET方法可以很好地处理这样的代码,并且响应是一个json,我用Jackson解析它。

  • 我想从Postman扩展(Chromium)导出一个特定请求,并将其发送给另一个开发人员,以便他们可以导入它。我该怎么做?

  • 我想通过邮递员上传一个图像到我的Rest API。我使用的是Spring Boot框架。以下是屏幕截图: 我也没有设置任何头部,因为我在其他堆栈溢出答案中发现,它给出了多部分边界错误。 下面是我的控制器代码: 现在,我将使用一个产品对象,该对象内部包含一个定义为Byte[]数组的图像。我把它作为字符串和图像分开作为多部分文件。 下面是我定义的产品类属性: 因为,我使用的是spring boot,这

  • 我对Angular 2相当陌生,请考虑一下。 我在使用angular 2将文件上传到节点服务器时遇到了一个问题。使用邮递员很管用: