2 votes

variable $_POST et $_FILE vide lors du téléchargement de gros fichiers

J'ai essayé de télécharger un fichier d'une taille de 20 Mo. Or, la taille par défaut du formulaire de téléchargement est de 8 Mo. Lorsque je télécharge un tel fichier, les variables $_POST et $_FILE sont vides. Je veux maintenant vérifier la taille du fichier. Si ces deux variables sont vides, comment puis-je effectuer ce contrôle ? Veuillez me donner des suggestions.

4voto

Mob Points 5926

Sauf erreur de code, il est fort probable que vos 20MB dépasse votre limite de téléchargement. Changez cela de façon permanente à partir de votre php.ini archivo.

Utilice

ini_set("upload_max_filesize", "30M");

pour définir votre taille maximale de téléchargement pour cette session uniquement. Et pour le POST

Utilisez cette

ini_set("post_max_size", "30M");

Pour vérifier les tailles

   echo ini_get("post_max_size") . "\n";
   echo ini_get("upload_max_filesize");

3voto

mario Points 76989

Aucune idée de ce que vous voulez vraiment. Mais vous pouvez sonder la taille du contenu reçu en utilisant :

  $_SERVER["CONTENT_LENGTH"]

Cela devrait indiquer la taille du corps de la requête POST. (Le nombre peut être plus élevé que le contenu réellement reçu, dans le cas d'un téléchargement avorté).

1voto

Nameless Points 1209

Vérifiez php://input, la partie autorisée de 8mb devrait être là.

Par exemple echo file_get_contents('php://input');

1voto

pinaldesai Points 1191

Vous pouvez définir dynamiquement la taille maximale de vos fichiers à télécharger.

écrivez la déclaration suivante dans votre fonction de téléchargement où vous essayez de télécharger un fichier. Ceci augmentera la limite jusqu'à 50 MB

ini_set("upload_max_filesize", "50M");

Si vous voulez vérifier les variables des fichiers, vous pouvez utiliser l'alternative HTTP_POST_FILES

$theFileSize = $HTTP_POST_FILES['file']['size'];

J'espère que cela pourra vous aider.

Gracias.

1voto

fire Points 9036

Utilice MAX_FILE_SIZE comme champ d'entrée caché, cela empêchera l'utilisateur d'attendre si le fichier est plus grand que la limite et n'exécutera pas votre code afin que les variables ne soient pas vides...

Le champ caché MAX_FILE_SIZE (mesuré en octets) doit précéder le champ champ de saisie du fichier, et sa valeur est la taille maximale des fichiers acceptée par PHP. Cet élément de formulaire devrait toujours être utilisé, car il évite aux utilisateurs d'attendre le transfert d'un gros fichier pour découvrir qu'il était trop gros qu'il était trop gros et que le transfert a échoué. Gardez à l'esprit : tromper ce paramètre du côté du navigateur est assez facile à tromper. Ne vous fiez donc jamais à des fichiers comportant ne comptez jamais sur le fait que des fichiers d'une taille supérieure soient bloqués par cette fonction. Il s'agit simplement d'une fonctionnalité pratique pour les utilisateurs du côté client de l'application. Les paramètres PHP (côté serveur) pour la taille maximale, cependant, ne peuvent pas être trompés.

http://www.php.net/manual/en/features.file-upload.post-method.php

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X