Maison >développement back-end >tutoriel php >Comment puis-je accéder aux données POST brutes en PHP lors de l'utilisation de données multipart/form ?

Comment puis-je accéder aux données POST brutes en PHP lors de l'utilisation de données multipart/form ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-26 09:31:11377parcourir

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

Comportement inattendu : données de publication brutes non disponibles

Comme indiqué dans le manuel PHP, ni php://input ni $HTTP_RAW_POST_DATA ne peuvent être utilisé pour récupérer les données POST brutes pour les requêtes avec le type de contenu multipart/form-data. En effet, php://input permet une récupération efficace des données brutes, mais cela ne fonctionne que lorsque le type de contenu n'est pas multipart/form-data.

Solution de contournement pour les formulaires multipart/form-data.

Malgré le manque d'accès direct aux données de publication brutes pour les requêtes multipart/form-data, une solution de contournement existe pour récupérer it :

  1. Modifier la configuration Apache : Ajoutez la configuration suivante à votre fichier de 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> 
  2. Astuce PHP : Cette modification changera le Content-Type des requêtes entrantes en XXX.php de multipart/form-data à multipart/form-data-alternate. Par conséquent, PHP ne tentera plus d'analyser les données.
  3. Récupérer les données brutes : Vous pouvez désormais accéder aux données brutes complètes à partir de php://input et les analyser vous-même.

Considérations :

  • La solution de contournement en résultera dans un tableau $_FILES vide.
  • Ce hack n'est pas une solution officielle, mais il fournit un moyen d'obtenir des données brutes pour les requêtes multipart/form-data.
  • Il est toujours préférable de s'assurer que le partenaire qui envoie les données adhère au type de contenu correct pour éviter complètement de tels problèmes.

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