直接回答:你不能那样做。PHP坚持自己解析它,每当它看到多部分/表单数据内容类型。原始数据将不可用。可悲的是。但是你可以绕过它。
我遇到了类似的问题,一个合作伙伴将格式不正确的数据作为多部分/表单数据发送,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从多部分/表单数据更改为多部分/表单数据替代,这足以阻止 PHP 尝试解析它
在此之后,您终于可以从 php://input 读取整个原始数据并自行解析。
这很丑陋,但我还没有找到更好的解决方案,或者实际上任何其他解决方案-除了要求伴侣修复他们的一面。
铌!当你按照我在这里描述的去做时,_FILES美元将是空的。