【问题标题】:Make a http multipart request that has post data and a file upload发出包含发布数据和文件上传的 http 多部分请求
【发布时间】:2012-11-24 23:23:14
【问题描述】:

我正在尝试向具有发布数据和文件上传的 php 文件发送发布请求,这是我发送的内容、设置标题的代码、我拥有的 php 文件以及什么我从 php 文件中返回:([图像文件内容] 是我发送的图像文件的二进制数据的占位符)

我的问题是 $_POST 和 $_FILES 都没有显示空数组。我正在想办法解决这个问题。

//我要发送到服务器的数据:

- 边界 内容配置:发布;名称='param1' 价值1 - 边界 内容配置:发布;名称='field2' 价值2 - 边界 内容配置:发布;名称='field3' 价值3 - 边界 内容处置:表单数据;名称='文件';文件名='app/native/assets/sampleFile.jpg' 内容类型:图片/jpg 内容传输编码:二进制 [图片文件内容] - 边界 - -------------------------------------------------- ---

对于我的标题,我有:

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 文件的结果:

邮政: 大批 ( ) 文件: 大批 ( )

【问题讨论】:

  • 几周前我自己也遇到了这个问题。您是否尝试过仅发送文件或仅发布数据以查看它们是否出现?我们最终发现需要将 php.ini 设置为接受更大的文件。
  • 您的 multipart/form-data 是 mulipart。尝试var_dumping $_REQUEST 变量
  • 你从什么环境发送请求?

标签: php file-upload http-post multipartform-data


【解决方案1】:

试试类似的东西

- 边界 内容处置:表单数据;名称="参数1" 价值1 - 边界 内容处置:表单数据;名称=“字段2” 价值2 - 边界 内容处置:表单数据;名称=“字段3” 价值3 - 边界 内容处置:表单数据;名称=“文件”;文件名="app/native/assets/sampleFile.jpg" 内容类型:图片/jpg 内容传输编码:二进制 [图片文件内容] - 边界 -
request.setRawHeader("Content-Type", "multipart/form-data; boundary=boundary");

【讨论】:

  • 是的,我只是注意到我把“post”放在了我应该使用“form-data”的地方,我把它们改成了“form-data”,但我的结果仍然是空白php 文件。
  • @user1296259 您是否添加了终止边界并将内容类型标头从mulipart/form-data, 修复为multipart/form-data;?另外,您确定将内容长度设置为正确的值吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
  • 1970-01-01
  • 2022-11-19
相关资源
最近更新 更多