Maison  >  Article  >  développement back-end  >  Que dois-je faire si le fichier téléchargé par php ne prend pas effet ?

Que dois-je faire si le fichier téléchargé par php ne prend pas effet ?

coldplay.xixi
coldplay.xixioriginal
2020-07-29 17:44:483061parcourir

Solution au problème selon lequel le téléchargement de fichiers PHP ne prend pas effet : 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 ; la valeur de [max_execution_time] doit être suffisamment grande.

Que dois-je faire si le fichier téléchargé par php ne prend pas effet ?

La solution pour le fichier de téléchargement php ne fonctionne pas :

Scénario 1 : Le répertoire temporaire L'emplacement où les fichiers sont stockés pendant le téléchargement des fichiers doit être ouvert et 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 qu'il l'a fait. autorisation d'écriture dans 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 la durée d'exécution maximale du programme en utilisant set_time_limit sur la page. Par exemple, illimité : set_time_limit(0);

Cas 3 : file_uploads = On. la valeur par défaut est activée, 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 grand. Afin d'éviter que l'exécution de scripts 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 ne fonctionnent pas, pensez à ajouter

client_max_body_size 20m;
Cette phrase signifie que la taille maximale autorisée pour le téléchargement est de 20 Mo, ce qui dépend de votre propre situation. L'emplacement de mon fichier de configuration nginx est

. /usr/local/nginx/conf/nginx.conf

Recommandations d'apprentissage associées :

Programmation PHP de l'entrée à la maîtrise

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