Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich auf POST-Rohdaten aus Multipart-/Formulardatenanfragen in PHP zugreifen?

Wie kann ich auf POST-Rohdaten aus Multipart-/Formulardatenanfragen in PHP zugreifen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-26 15:01:10525Durchsuche

How Can I Access Raw POST Data from Multipart/Form-Data Requests in PHP?

Zugriff auf rohe Postdaten für Multipart-/Formulardatenanfragen

Während PHP Mechanismen wie php://input und $HTTP_RAW_POST_DATA zum Abrufen bietet Wenn Sie POST-Rohdaten verwenden, sind diese Methoden für mehrteilige/Formulardatenanfragen wirkungslos. Laut PHP-Handbuch:

"[...] php://input is not available with enctype="multipart/form-data"."

Lösung für Multipart /Form-Data Forms

Der Zugriff auf Rohdaten für solche Formulare erfordert eine Problemumgehung. Sie können es nicht direkt abrufen, da PHP es automatisch analysiert. Sie können jedoch den folgenden Hack anwenden:

  1. Ändern Sie Ihre Apache-Konfiguration:
<Location "/backend/XXX.php">
    SetEnvIf Content-Type ^(multipart/form-data)(.*) NEW_CONTENT_TYPE=multipart/form-data-alternate OLD_CONTENT_TYPE=
    RequestHeader set Content-Type %{NEW_CONTENT_TYPE}e env=NEW_CONTENT_TYPE
</Location>
  1. Dadurch wird der Inhaltstyp der an XXX gesendeten Anfragen geändert .php von multipart/form-data zu multipart/form-data-alternate. Dadurch wird verhindert, dass PHP die Daten automatisch analysiert.
  2. Lesen Sie die Rohdaten aus php://input. Sie können jetzt die Rohdaten abrufen und selbst analysieren.

Achtung:

Diese Problemumgehung löst zwar das Problem beim Abrufen der Rohdaten, führt jedoch zu einem leeres $_FILES-Array.

Das obige ist der detaillierte Inhalt vonWie kann ich auf POST-Rohdaten aus Multipart-/Formulardatenanfragen in PHP zugreifen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn