Solution au problème selon lequel php ne peut télécharger que des fichiers d'une taille inférieure à 1 Ko : 1. Recherchez et ouvrez le fichier de configuration php.ini ; 2. Modifiez les valeurs de "client_max_body_size", "upload_max_filesize" et "post_max_size".
L'environnement d'exploitation de cet article : système Windows7, version PHP7.1, ordinateur DELL G3
php Que dois-je faire si je ne peux télécharger que des fichiers d'une taille inférieure à 1 000 ?
Solution au problème de limite de téléchargement de fichiers PHP :
Les téléchargements de fichiers volumineux PHP occupent beaucoup de ressources, la taille de téléchargement doit donc être limitée. Voici les trois paramètres pertinents :
client_max_body_size upload_max_filesize post_max_size
Trois rapports d'erreur correspondant à. les informations ci-dessus :
Warning: POST Content-Length of 9663102 bytes exceeds the limit of 8388608 bytes in Unknown on line 0 $_FILES['file']['error']==1 nginx错误:413 Request Entiry Too Large
client_max_body_size est utilisé pour définir la limite supérieure de la taille du corps de la requête du client. Le fichier à télécharger est dans le corps, ce paramètre peut donc être indirectement considéré comme une limite sur la taille de téléchargement du fichier.
Le serveur nginx détermine la taille du corps via le Content-Length de l'en-tête de la requête. Le dépassement de la limite supérieure définie renverra le code d’erreur 413 Entité de demande trop grande. La définition de ce paramètre sur 0 peut annuler la limite de longueur.
Syntax: client_max_body_size size; Default: client_max_body_size 1m; Context: http, server, location
client_max_body_size peut être défini dans les blocs http, serveur et emplacement, afin que nous puissions augmenter la taille du package téléchargé pour le nom de domaine ou même une adresse de demande.
Erreur php :
Warning: POST Content-Length of 9663102 bytes exceeds the limit of 8388608 bytes in Unknown on line 0
À l'heure actuelle, la taille du fichier téléchargé est supérieure à post_max_size.
php n'a aucun avertissement mais ne peut pas obtenir le fichier téléchargé
Pour le moment $_FILES['file']['error']==1 , la raison de l'erreur est que la taille du fichier téléchargé est inférieure à post_max_size mais plus grand que upload_max_filesize .
Extension des points de connaissances :
Solution au problème de la limite de taille de téléchargement des fichiers PHP et Nginx
Pour certains sites Web nginx+php, la taille du fichier téléchargé sera limitée à bien des égards. L'un est la limitation de nginx lui-même, qui limite. clients La taille du fichier téléchargé par le client, l'un correspond aux paramètres par défaut à plusieurs endroits du fichier php.ini.
Donc, afin de résoudre le problème de la limite de taille de fichier de téléchargement, de nombreuses modifications doivent être apportées. Quelques endroits sont répertoriés ci-dessous.
1. Modifiez le fichier /usr/local/nginx/conf/nginx.conf, recherchez client_max_body_size et définissez la valeur suivante sur la valeur que vous souhaitez définir. Par exemple :
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root /home/www/htdocs; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/www/htdocs$fastcgi_script_name; include fastcgi_params; client_max_body_size 35m; #客户端上传文件大小设为35M client_body_temp_path /home/www/nginx_temp; #设置临时目录 }
Annexe : Nginx a un composant de téléchargement :
Taux de téléchargement, taille du corps de téléchargement, c'est-à-dire que le fichier peut être plus grand lors du téléchargement
client_max_body_size 1024M upload_limit_rate 158k
est le suivant : lors du téléchargement de fichiers volumineux, vous ressentirez que la vitesse de téléchargement est lente lorsqu'elle dépasse un certain temps, une erreur sera signalée indiquant que l'exécution du script dépasse 30 secondes. En effet, l'option de configuration max_execution_time dans le fichier de configuration php.ini provoque des problèmes, ce qui signifie que chaque script est maximum. temps d'exécution autorisé (secondes), 0 signifie aucune limite. Vous pouvez ajuster la valeur de max_execution_time de manière appropriée. Il n'est pas recommandé de la définir sur 0.
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!