Maison  >  Article  >  développement back-end  >  Que dois-je faire si php ne peut pas télécharger de gros fichiers ?

Que dois-je faire si php ne peut pas télécharger de gros fichiers ?

藏色散人
藏色散人original
2021-05-11 09:59:521598parcourir

Solution au problème selon lequel PHP ne peut pas télécharger de gros fichiers : 1. Ouvrez le répertoire temporaire dans lequel les fichiers sont stockés lors du téléchargement de fichiers ; 2. Augmentez la valeur de max_execution_time 3. Modifiez file_uploads sur on ; taille des téléchargements de fichiers. Valeur maximale ; 5. Augmentez la valeur post_max_size et ainsi de suite.

Que dois-je faire si php ne peut pas télécharger de gros fichiers ?

L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3

La raison pour laquelle php échoue pour télécharger des fichiers volumineux et stratégies d'adaptation

Pourquoi le téléchargement de gros fichiers échoue toujours, mais le téléchargement de petits fichiers ne pose aucun problème. L'éditeur n'a pas pu le comprendre, alors j'ai cherché la raison sur Internet, j'ai compilé un article sur les raisons et les solutions à l'échec de PHP à télécharger des fichiers volumineux, et je l'ai partagé avec tout le monde.

Voici diverses raisons et solutions :

Cas 1 : Le répertoire temporaire dans lequel le fichier est stocké lors du téléchargement du fichier doit être ouvert et un répertoire accessible en écriture par l'utilisateur propriétaire du processus PHP. Si rien n'est spécifié, PHP utilise la valeur par défaut du système.

Le upload_tmp_dir dans le fichier php.ini est utilisé pour décrire le répertoire temporaire où sont placés les fichiers téléchargés par PHP. Si vous souhaitez télécharger des fichiers, vous devez vous assurer que le serveur n'a pas fermé le fichier temporaire et. a l'autorisation d'écriture sur le dossier.

Cas 2 : La valeur de max_execution_time doit être suffisamment grande. La variable max_execution_time définit le temps, mesuré en secondes, pendant lequel PHP attend la fin du script avant de le terminer de force. Cette variable est utile lorsque le script entre dans une boucle infinie. Cependant, cette fonctionnalité peut également provoquer l'échec de l'opération lorsqu'il existe une activité légitime qui prend beaucoup de temps (telle que le téléchargement d'un fichier volumineux). Dans de tels cas, vous devez envisager d'augmenter la valeur de cette variable pour empêcher PHP d'arrêter le script pendant que celui-ci exécute un processus important, comme le définir sur 90 secondes.

max_execution_time = 90

Notez qu'il existe également une fonction set_time_limit dans la fonction php, qui a le même effet que le paramètre ci-dessus. La différence entre les deux est que ce qui précède est défini dans le fichier php.ini, tandis que set_time_limit. est écrit dans un fichier php. Par conséquent, vous pouvez également définir le temps d'exécution maximum du programme en utilisant set_time_limit sur la page. Par exemple, s'il n'y a pas de limite, set_time_limit(0);

Cas 3 : file_uploads. = On. La valeur par défaut est on, ce qui signifie autoriser le téléchargement de fichiers via HTTP, cette option ne peut pas être définie sur OFF.

Cas 4 : upload_max_filesize = 2M définit la taille maximale de téléchargement de fichier. La taille de téléchargement de fichier par défaut dans le fichier de configuration php.ini est de 2 M, ce qui est facile à créer pour les débutants en PHP One. L'erreur est de spécifier la taille du fichier téléchargé lors de l'écriture de la fonction de téléchargement de fichier en définissant la zone de formulaire pour la taille maximale du fichier téléchargé, c'est-à-dire la valeur maximale du fichier autorisé à être téléchargé et la valeur de max_file_size ( champ de valeur caché). En fait, généralement d'autres peuvent contourner cette valeur, donc pour des raisons de sécurité, il est préférable de configurer l'option upload_max_filesize dans le fichier de configuration php.ini pour définir la taille du fichier téléchargé. La valeur par défaut upload_max_filesize = 2M, c'est-à-dire que la taille de téléchargement du fichier est de 2M. Si vous souhaitez télécharger des fichiers dépassant 8M, par exemple 20M, vous devez définir upload_max_filesize = 20M.

Cas 5 : post_max_size Cette valeur doit également être suffisamment grande. Cette variable est également une variable liée à la soumission du formulaire. Elle limite la quantité maximale de données que le programme PHP peut recevoir lorsque le client soumet un formulaire via la méthode POST. En général, cette valeur peut être légèrement supérieure à upload_max_filesize. Par exemple, si vous souhaitez télécharger un fichier de 20 Mo, cette valeur peut être définie sur 21 Mo.

Cas 6 : max_input_time Cette variable peut limiter le temps de réception des données via POST, GET et PUT en secondes. Si l'application s'exécute dans un environnement avec un réseau lent, vous devez augmenter cette valeur pour augmenter le temps requis pour recevoir les données, par exemple, définissez cette valeur sur 90 secondes.

max_input_time = 90

Cas 7 : memory_limit doit également être suffisamment grande Afin d'éviter que l'exécution de scripts n'utilise une grande quantité de mémoire système disponible, PHP permet de définir des limites d'utilisation de la mémoire. Utilisez la variable memory_limit pour spécifier la capacité de mémoire maximale qu'un seul script peut utiliser. La valeur de la variable memory_limit doit être correctement supérieure à la valeur de post_max_size.

Scénario 8 : De plus, si votre hôte est un système d'exploitation nginx, si les opérations ci-dessus échouent, pensez à ajouter client_max_body_size 20m dans le fichier de configuration nginx. Cette phrase signifie que le téléchargement maximum autorisé est de 20 Mo, selon sur votre propre situation. L'emplacement de mon fichier de configuration nginx est /usr/local/nginx/conf/nginx.conf.

Apprentissage recommandé : "Tutoriel vidéo PHP"

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