Maison >développement back-end >tutoriel php >Comment puis-je accéder aux données POST brutes à partir de requêtes Multipart/Form-Data en PHP ?

Comment puis-je accéder aux données POST brutes à partir de requêtes Multipart/Form-Data en PHP ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-26 15:01:10525parcourir

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

Accès aux données de publication brutes pour les demandes de données multiparts/formulaires

Alors que PHP offre des mécanismes tels que php://input et $HTTP_RAW_POST_DATA pour la récupération données POST brutes, ces méthodes sont inefficaces pour les requêtes multipart/form-data. D'après le manuel PHP :

"[...] php://input n'est pas disponible avec enctype="multipart/form-data"."

Solution pour Multipart /Form-Data Forms

L'accès aux données brutes de ces formulaires nécessite une solution de contournement. Vous ne pouvez pas le récupérer directement car PHP l'analyse automatiquement. Cependant, vous pouvez utiliser le hack suivant :

  1. Modifiez votre configuration Apache :
<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. Cela modifiera le type de contenu des requêtes envoyées à XXX .php de multipart/form-data à multipart/form-data-alternate. Cela empêchera PHP d'analyser automatiquement les données.
  2. Lisez les données brutes depuis php://input. Vous pouvez maintenant récupérer les données brutes et les analyser vous-même.

Attention :

Bien que cette solution de contournement résolve le problème de récupération des données brutes, elle entraînera un tableau $_FILES vide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn