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

发出包含post数据和文件上载的http多部分请求

沃侯林
2023-03-14

我试图发送一个帖子请求到一个php文件,该文件有帖子数据和文件上传,这里是我发送的内容,设置标题的代码,我有的php文件,以及我从php中得到的东西file:([图像文件内容]是我正在发送的图像文件二进制数据的占位符)

我的问题是_POST

//我正在向服务器发送的数据:

--boundary
content-disposition: post; name='param1'

value1
--boundary
content-disposition: post; name='field2'

value2
--boundary
content-disposition: post; name='field3'

value3
--boundary
content-disposition: form-data; name='file'; filename='app/native/assets/sampleFile.jpg'
Content-Type: image/jpg
Content-Transfer-Encoding: binary

[image file content]
--boundary--

-----------------------------------------------------

对于我的标题,我有:

request.setRawHeader("Content-Type", "mulipart/form-data, boundary=boundary");
//data holds the string above
request.setRawHeader("Content-Length", QString::number(data.length()).toAscii());

php文件:

<?php
  echo "\npost:\n\n";
  print_r($_POST);

  echo "\nfiles:\n\n";
  print_r($_FILES);
?>

php文件的结果:

post:

Array
(
)

files:

Array
(
)

共有1个答案

苏德容
2023-03-14

试试像这样的东西

--boundary
Content-Disposition: form-data; name="param1"

value1
--boundary
Content-Disposition: form-data; name="field2"

value2
--boundary
Content-Disposition: form-data; name="field3"

value3
--boundary
Content-Disposition: form-data; name="file"; filename="app/native/assets/sampleFile.jpg"
Content-Type: image/jpg
Content-Transfer-Encoding: binary

[image file content]
--boundary--
request.setRawHeader("Content-Type", "multipart/form-data; boundary=boundary");
 类似资料:
  • 在将FreshDesk集成到我的产品中时,我被用附件API创建票证所困扰。我使用高级Rest客户端测试API。我已经看到了许多关于栈溢出本身的论坛和问题,但我仍然对任何关于上传文件的多部分形式数据POST请求的回答不满意。 我想知道Advanced Rest Client中所需的请求格式以及标题 到目前为止,这是我正在使用的请求,但我没有得到正确的响应:

  • 微查询产生以下错误 {"导出数据文件":["需要导出数据文件字段。"]}

  • 我仍然对上传文件的不同方法感到困惑。后端服务器不在我的控制之下,但我可以使用Swagger page或Postman上传文件。这意味着服务器运行正常。但当我使用AngularJS进行上传时,它不起作用。 以下是使用Postman进行测试的方法。我只是在使用表单数据: 请注意,请求头的内容类型为多部分/表单数据。但是请求负载具有文件名和内容类型,即image/png。 这是我的代码: 参数只是图像数

  • 问题内容: 在Apache Commons HttpClient的3.x版本中,可以进行multipart / form-data POST请求(2004年的示例)。不幸的是,这在HttpClient的4.0版本中不再可能。 对于我们的核心活动“ HTTP”,多部分内容超出了范围。我们很乐意使用由其他项目维护的多部分代码,但我对此一无所知。几年前,我们曾尝试将多部分代码移至commons编解码器,

  • 问题内容: 我正在尝试发出POST请求以检索有关一本书的信息。这是返回HTTP代码的代码:302,已移动 当我从浏览器尝试时,可以从以下页面进行操作:http : //www.bkstr.com/webapp/wcs/stores/servlet/BuybackMaterialsView?langId=-1&catalogId=10001&storeId=10051&schoolStoreId=1

  • 问题内容: 我有一个代码库,当前使用Post上传文件,并具有enctype作为multipart / form- data。现在,我需要包括一些表单项,即一些参数也将随文件上传一起传递。我已经创建了html表单,但是我不能使用request.getParameter,因为它是一个多部分表单。谁能建议我如何将参数与上传文件一起传递。我提供以下代码。请根据我的代码的兼容性建议我如何解决 问题答案: 如