直接回答:你不能那样做。只要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将为空。



