Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich in PHP auf POST-Rohdaten zugreifen, wenn ich Multipart-/Formulardaten verwende?

Wie kann ich in PHP auf POST-Rohdaten zugreifen, wenn ich Multipart-/Formulardaten verwende?

Mary-Kate Olsen
Freigeben: 2024-11-26 09:31:11
Original
380 Leute haben es durchsucht

How Can I Access Raw POST Data in PHP When Using multipart/form-data?

Unerwartetes Verhalten: Rohe Beitragsdaten nicht verfügbar

Wie im PHP-Handbuch angegeben, können weder php://input noch $HTTP_RAW_POST_DATA vorhanden sein Wird zum Abrufen von POST-Rohdaten für Anforderungen mit dem Inhaltstyp „Multipart/Formulardaten“ verwendet. Dies liegt daran, dass php://input einen effizienten Abruf von Rohdaten ermöglicht, aber nur funktioniert, wenn der Inhaltstyp nicht multipart/form-data ist.

Workaround für multipart/form-data-Formulare

Trotz des fehlenden direkten Zugriffs auf rohe Postdaten für Multipart-/Formulardatenanfragen gibt es eine Problemumgehung zum Abrufen it:

  1. Apache-Konfiguration ändern:Fügen Sie die folgende Konfiguration zu Ihrer Apache-Konfigurationsdatei hinzu:

    <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> 
    Nach dem Login kopieren
  2. Trick PHP: Durch diese Änderung wird der Inhaltstyp eingehender Anfragen von „multipart/form-data“ in „XXX.php“ geändert multipart/form-data-alternate. Infolgedessen wird PHP nicht mehr versuchen, die Daten zu analysieren.
  3. Rohdaten abrufen: Sie können jetzt über php://input auf die vollständigen Rohdaten zugreifen und diese selbst analysieren.

Überlegungen:

  • Die Problemumgehung wird sich ergeben in einem leeren $_FILES-Array.
  • Dieser Hack ist keine offizielle Lösung, bietet aber eine Möglichkeit, Rohdaten für Multipart-/Formulardatenanfragen zu erhalten.
  • Es ist immer am besten, dies sicherzustellen Der Partner, der die Daten sendet, hält sich an den richtigen Inhaltstyp, um solche Probleme vollständig zu vermeiden.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage