직접 답변 : 할 수 없습니다. PHP는 multipart/form-data Content-Type을 볼 때마다 자체 파싱을 고집합니다. 원시 데이터는 사용할 수 없습니다. 슬프게도. 하지만 당신은 그걸 해킹 할 수 있습니다.
비슷한 문제가 발생했습니다. 파트너가 형식이 잘못된 데이터를 multipart/form-data 형식으로 보내고 있습니다. PHP가 구문 분석 할 수 없어서 파싱하지 않아서 직접 파싱 할 수 있습니다.
해결책? 이것은 PHP를 차단하기에 충분/폼 데이터 대체를 다중 부분에 다중/폼 데이터에서 XXX.php로 들어오는 요청의 콘텐츠 형식이 변경됩니다
<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>
: 내 아파치 conf 파일이 추가 구문 분석을 시도하는 중입니다
이렇게하면 마침내 php : // 입력에서 전체 원시 데이터를 읽고 직접 구문 분석 할 수 있습니다.
보기 흉하게 들지만 실제로는 다른 해결책을 찾지 못했습니다.
NB! 여기서 설명한 내용을 수행하면 $ _FILES는 비어 있습니다.
그것을 바이트 계산을 위해 인 경우는 $ _FILES의 바이트 수와 $ HTTP_RAW_POST_DATA가의 수를 바이트 결합 할 수 없습니다? – karim79
@ karim79, 그렇지 않습니다. – Pacerier