Maison > Article > développement back-end > Que dois-je faire si php ne peut pas télécharger de grandes images ?
Solution au problème selon lequel php ne peut pas télécharger de grandes images : 1. Ouvrez php.ini ; 2. Recherchez post_max_size et définissez-le sur la valeur dont vous avez besoin ; 3. Confirmez "file_uploads = on" ; . Définir l'autorisation Taille maximale du fichier de téléchargement.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Que dois-je faire si php ne peut pas télécharger de grandes images ?
La solution parfaite lorsque php ne peut pas télécharger de gros fichiers
La solution parfaite lorsque php.ini ne peut pas télécharger de gros fichiers
1 Ouvrez php.ini (il va sans dire comment l'ouvrir, Baidu en a beaucoup)
. 2. Recherchez post_max_size
Valeur maximale de soumission du formulaire. Cet élément ne limite pas la taille d'un seul fichier téléchargé, mais limite les données de soumission de l'ensemble du formulaire
La valeur par défaut est de 8 min, définissez-la sur la valeur dont vous avez besoin. Il est recommandé que ce paramètre soit défini sur une taille supérieure à upload_max_filesize
3. Recherchez les téléchargements de fichiers
Si vous souhaitez autoriser le téléchargement de fichiers via le commutateur http, confirmez file_uploads = on
4. Recherchez upload_tmp_dir
Le fichier est téléchargé à l'endroit où les fichiers temporaires sont stockés sur le serveur. S'il n'est pas spécifié, la valeur par défaut du système sera utilisée. Dossier temporaire
Si l'erreur système affiche "xxx répertoire temporaire xxx", vous devez définir un répertoire valide pour ce répertoire. Si aucune erreur n'est signalée. , ne vous inquiétez pas
5. Recherchez la valeur maximale de upload_max_filesize
autorisée à télécharger des fichiers. La valeur par défaut est 2m, définissez-la sur la valeur dont vous avez besoin. Il est recommandé de ne pas dépasser la valeur post_max_size de ce paramètre. car il est contrôlé par la valeur post_max_size (même si upload_max_filesize est défini sur 1g et post_max_size n'est défini que sur 2m, les fichiers de plus de 2m ne seront toujours pas téléchargés, car ils sont contrôlés par la valeur post_max_size)
6. souhaitez télécharger des fichiers de plus de 8 min, vous devez également définir les paramètres suivants :
Recherchez max_execution_time = 600 ; la valeur de temps maximale (en secondes) pour chaque page php à exécuter, par défaut 30 secondes
max_input_time = 600 ; temps requis pour que chaque page php reçoive les données, la valeur par défaut est de 60 secondes
memory_limit = 8m; La mémoire maximale requise pour chaque page php, la valeur par défaut est de 8m
La méthode nginx est une solution parfaite pour télécharger des fichiers volumineux Méthode
1 . Client_body_buffer_size doit être défini aussi grand que possible. Ceci est basé sur des considérations de vitesse. Si le fichier téléchargé doit toujours être écrit sur le disque parce que le paramètre est trop petit, la vitesse sera trop lente.
2.client_body_temp_path Le chemin doit avoir des autorisations d'écriture. C'est une erreur évidente. Corrigez-le simplement
3.client_max_body_size définit la valeur maximale pour les fichiers téléchargés. Ceci est basé sur des considérations de sécurité. Nous pensons que les utilisateurs normaux ne téléchargeront pas ou ne téléchargeront pas de fichiers trop volumineux.
Peut être défini sur client_max_body_size 100m ou définir cette valeur en fonction de votre propre entreprise.
Exemple
configuration nginx.
Le code est le suivant :
cd /export/servers/nginx/conf/nginx.conf Dans la section serveur de ce fichier de configuration, le champ client_max_body_size est ajouté au
location / { root html; index index.html index.htm; client_max_body_size 1000m; }
, et cela ne fonctionne pas. peu importe la façon dont vous le redémarrez. Plus tard, j'ai trouvé le fichier de sous-configuration dans le fichier de configuration générale :
Le code est le suivant :
sendfileon; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #gzip on; include domains/*; #include domains/chat.local; #include domains/chat.erp.com; #include domains/support.chat.com; #include douains/chat.com; server { listen 80; server_name localhost;
J'ai donc trouvé le fichier de sous-configuration et je l'ai modifié dans le fichier de sous-configuration. La configuration du fichier de sous-configuration est la suivante :
Le code est le suivant :
server { listen 80; server_name chat.erp.360buy.com; # access_log /export/servers/nginx/logs/chat.erp.360buy.com; location / { proxy_pass; client_max_body_size 1000m; } }
Redémarrez avec /export/servers/nginx/sbin/nginx -s reload, et le problème de la taille limitée du fichier de téléchargement est résolu.
Partagez mon processus de solution, j'espère qu'il sera utile à tout le monde.
Si le problème ne peut toujours pas être résolu, nous devons voir s'il s'agit d'un problème avec les paramètres du formulaire PHP
Ce code est divisé en deux fichiers, l'un est upload.html et l'autre est upload.php
upload .html
Le code est le suivant :
<form enctype=multipart/form-data action=upload.php method=post> <input type=hidden name=max_file_size value=100000> <input name=userfile type=file> <input type=submit value=上传文件> </form>
Parmi eux,
Veuillez noter que
Il s'agit d'une balise Si nous voulons télécharger des fichiers, elle doit être spécifiée comme multipart/form-data, sinon le serveur le fera. je ne sais pas quoi faire.
Il est à noter que le champ de valeur cachée de l'option de formulaire max_file_size dans le fichier upload.html peut limiter la taille du fichier téléchargé en définissant sa valeur.
La valeur de max_file_size n'est qu'une suggestion pour les navigateurs, en fait elle peut être facilement contournée. Ne comptez donc pas sur cette valeur pour limiter les restrictions du navigateur. En fait, la taille maximale du fichier de téléchargement dans les paramètres PHP ne sera pas invalide. Mais il est préférable d'inclure max_file_size dans le formulaire, car cela évite aux utilisateurs de passer du temps à attendre qu'un gros fichier soit téléchargé pour découvrir que le fichier est trop gros.
upload.php
Le code est le suivant :
$f=&$http_post_files['myfile']; $dest_dir=’uploads’;//设定上传目录 $dest=$dest_dir.’/’.date(ymd)._.$f['name'];//设置文件名为日期加上文件名避免重复 $r=move_uploaded_file($f['tmp_name'],$dest); chmod($dest, 0755);//设定上传的文件的属性
ou
<?copy($_files[myfile][tmp_name],$_files[myfile][name]);?>
Le contenu du tableau $_files dans l'exemple ci-dessus est le suivant. Nous supposons que le nom du champ de téléchargement de fichier est userfile (le nom peut être nommé arbitrairement)
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!