gpt4 book ai didi

php - 获取原始帖子数据

转载 作者:可可西里 更新时间:2023-10-31 23:48:48 28 4
gpt4 key购买 nike

根据 php 手册和 php://input,$HTTP_RAW_POST_DATA 都不能与 multipart/form-data POST 请求一起使用。

"php://input 允许您读取原始 POST 数据。它是 $HTTP_RAW_POST_DATA 的内存密集型替代方案,不需要任何特殊的 php.ini 指令。php://input不适用于 enctype="multipart/form-data"。"

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

最佳答案

直接回答:你不能那样做。每当看到 multipart/form-data Content-Type 时,PHP 坚持自己解析它。您将无法获得原始数据。可悲的是。但您可以绕过它。

我遇到了类似的问题,一个合作伙伴发送格式不正确的数据作为 multipart/form-data,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>

这会将对 XXX.php 的传入请求的内容类型从 multipart/form-data 更改为 multipart/form-data-alternate,这足以阻止 PHP 尝试解析它

在此之后,您终于可以从 php://input 读取整个原始数据并自行解析。

这很丑陋,但我还没有找到更好的解决方案,或者实际上没有找到任何其他解决方案 - 除了要求合作伙伴修复他们的一面。

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

关于php - 获取原始帖子数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16653632/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com