当前位置: 首页 > 面试题库 >

获取原始帖子数据

施令秋
2023-03-14
问题内容

根据php手册或php:// input都不能$HTTP_RAW_POST_DATAmultipart/form-dataPOST请求一起使用。

“ php://
input允许您读取原始的POST数据。它是内存占用较少的替代方法,$HTTP_RAW_POST_DATA并且不需要任何特殊的php.ini指令。php://
input不适用于enctype="multipart/form-data"。”

如何获取multipart/form-data表格的原始数据?


问题答案:

直接回答:你不能那样做。只要PHP看到multipart / form-data Content-
Type,它就会坚持对其本身进行解析。原始数据将对您不可用。可悲的是。但是您可以解决它。

我遇到了类似的问题,一个合作伙伴正在将格式错误的数据作为多部分/表单数据发送,PHP无法对其进行解析并且没有给出它,因此我可以自己对其进行解析。

解决方案?我将此添加到我的apache conf中:

<Location "/backend/XXX.php">
    SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate$2 OLD_CONTENT_TYPE=$1$2
    RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE
</Location>

这会将传入请求的Content-Type从multipart / form-data更改为multipart / form-data-
alternate,这足以阻止PHP尝试解析它。

之后,您最终可以从php:// input读取全部原始数据并自己解析。

这很丑陋,但我没有找到更好的解决方案或实际上没有其他解决方案-只是要求合作伙伴固定立场。

注意!当您执行我在此处描述的操作时,$ _ FILES将为空。



 类似资料:
  • 我的Rest控制器 我的异常处理无效的原始 json 帖子。我尝试使用请求。 IllegalStateException:已经为此请求调用了getInputStream() 我想在这个异常上保留日志输入原始json数据。 有人能帮我吗?谢谢。 更新 作为@Sean Carrol的建议。我尝试按照建议使用HttpServletRequest estWrapper,但它仍然不起作用。 我在InputS

  • 我必须从自定义帖子类型返回所有帖子,由'start_date'从'ACF字段'。 我有一些有日期的帖子,还有一些没有日期的帖子。当我添加“orderby”时= 这是我的代码: 如果我删掉 我所有的帖子都被退回,但它们不是按开始日期排序的 有什么想法吗? 谢谢。

  • 问题内容: 有没有办法从获取原始/原始JSON值? 问题: 现在是,但是我需要原始字符串。 有没有办法获得这个原始价值?另外,我无法更改创建方式(例如更改设置),因为它作为参数传递给我的课程… (参考:原始的NJsonSchema问题) 问题答案: 您无法获取原始字符串,无法识别日期字符串并将其转换为自身内部的结构。如果您这样做,则可以看到以下内容: 但是,您可以通过执行以下操作以ISO 8601

  • 我想用原始字符串发送帖子请求,而不是使用截击设置参数。 我已尝试覆盖StringRequest中的getBody方法,如下所示: 它甚至不会发送请求并给出错误:com。Android截击时间误差 任何帮助都将不胜感激。

  • 我需要贴标签。我正在为此使用这样的代码: var_dump为tag=blog返回这样的数据 数组(5){["type"]= 并且不显示此标记的任何记录。在DB中存在4条记录。 当然,我可以将此代码用于查看帖子: 但是在这个页面上,我需要显示每页的帖子数量等等。 我不明白为什么WP_Query()在我的代码中不起作用。你能帮我吗? 数组中应该包含哪些属性?我当前的$args不工作:

  • 以前,我问如何在Flask请求中接收数据,因为是空的。答案解释说是原始的文章主体,但是如果分析表单数据,它将是空的。如何才能无条件获得生帖体?