Comment les éléments `post_max_size` et `upload_max_filesize` de PHP fonctionnent-ils ensemble pour les téléchargements de fichiers ?

Linda Hamilton
Libérer: 2024-10-31 00:01:02
original
389 Les gens l'ont consulté

 How Do PHP's `post_max_size` and `upload_max_filesize` Work Together for File Uploads?

Comprendre les limites de taille de téléchargement de fichiers PHP

Les paramètres de configuration PHP post_max_size et upload_max_filesize jouent un rôle crucial dans la gestion des téléchargements de fichiers. Cependant, leur interaction peut prêter à confusion.

La confusion

Dans l'exemple fourni, post_max_size est défini sur 8 Mo, tandis que upload_max_filesize est défini sur 16 Mo. Logiquement, on pourrait supposer que des fichiers allant jusqu'à 16 Mo pourraient être téléchargés. Cependant, la limite post_max_size plus petite remplace cette hypothèse, ce qui entraîne des erreurs lors de la tentative de téléchargement de fichiers de plus de 8 Mo.

Définition des limites

  • upload_max_filesize : Spécifie la taille maximale d'un seul fichier téléchargé.
  • post_max_size : Spécifie la taille maximale de l'ensemble du corps de la requête HTTP POST, qui inclut toutes les données soumises, y compris les fichiers.

Interaction des limites

post_max_size agit comme une limite totale sur la taille combinée de tous les fichiers et autres données soumis via POST. Cela signifie que même si upload_max_filesize autorise des fichiers plus volumineux, la taille globale de la requête doit respecter post_max_size.

Solution pour les téléchargements de fichiers volumineux

Pour permettre le téléchargement de fichiers plus grand que post_max_size, il faut trouver un autre moyen de transmettre le fichier sans utiliser POST. Cela pourrait impliquer :

  • Multipart/form-data : L'utilisation d'un script personnalisé qui gère les téléchargements de fichiers indépendamment des limitations de taille des requêtes HTTP.
  • Méthodes HTTP PUT/PATCH : Utilisation de ces méthodes pour télécharger des fichiers volumineux via une API REST.

Détection d'erreur

Lorsque post_max_size est dépassé, $ _POST et $_FILES seront vides. Cependant, $_SERVER['CONTENT_LENGTH'] sera supérieur à 0. Il est important de noter que si aucune variable de publication ou fichier n'est transmis, $_SERVER['CONTENT_LENGTH'] sera 0.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal