Maison  >  Article  >  développement back-end  >  Pourquoi les gros fichiers php ne peuvent-ils pas être téléchargés ?

Pourquoi les gros fichiers php ne peuvent-ils pas être téléchargés ?

不言
不言original
2018-07-09 17:51:361914parcourir

Cet article présente principalement les raisons et les solutions à l'échec du téléchargement de fichiers volumineux PHP. Maintenant, je le partage avec tout le monde. Les amis dans le besoin peuvent s'y référer

. Solution pour php.ini impossible de télécharger des fichiers volumineux

Ouvrir php.ini

2. Recherchez post_max_size : (modifier la limite de taille de téléchargement)

La valeur maximale pour la soumission d'un formulaire. fichier téléchargé unique, mais la limite par défaut pour les données soumises de l'ensemble du formulaire 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. Rechercher les téléchargements de fichiers :(Modifier les restrictions du commutateur de téléchargement)

S'il faut autoriser le téléchargement de fichiers via le commutateur http, confirmez file_uploads = on

4. Recherchez upload_tmp_dir :(Modifier les restrictions de téléchargement de fichiers temporaires)

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é, le dossier temporaire par défaut du système sera utilisé si l'erreur système affiche "xxx répertoire temporaire xxx", vous devez définir un répertoire valide pour ce répertoire. aucune erreur n'est signalée, laissez-la tranquille

5. Rechercher upload_max_filesize :(modifier la limite de taille de téléchargement)

La taille maximale autorisée du fichier de téléchargement, la valeur par défaut est de 2 min. Définissez ce paramètre sur la valeur dont vous avez besoin. Il est recommandé de ne pas dépasser la valeur post_max_size, car elle est contrôlée par la valeur post_max_size (même si upload_max_filesize est défini. à 1g,

et lorsque post_max_size n'est défini que sur 2m, il sera supérieur à 2m. Le fichier ne peut toujours pas être téléchargé car il est contrôlé par la valeur post_max_size)

6. Si vous souhaitez télécharger un fichier de plus de 8 min, vous devez également définir les paramètres suivants : (Modifier le délai de téléchargement)

Trouver max_execution_time = 600 ; La valeur de temps maximale (en secondes) pour chaque page php à exécuter, la valeur par défaut est de 30 secondes

max_input_time = 600 ; page pour recevoir des 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 de 8m

Solution pour télécharger des fichiers volumineux à l'aide de la méthode nginx

1. Client_body_buffer_size doit être défini aussi grand que possible. est basé sur des considérations de vitesse. Si le fichier téléchargé doit toujours être écrit sur le disque parce qu'il 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 fondamentalement 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.

1. Ouvrez php.ini

2. Recherchez post_max_size : (modifiez la limite de taille de téléchargement)

Valeur maximale pour la 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. à ce dont vous avez besoin. Valeur, il est recommandé que ce paramètre soit défini à une taille supérieure à upload_max_filesize

3. Rechercher les téléchargements de fichiers : (modifier la limite du commutateur de téléchargement)

Si vous souhaitez autoriser le téléchargement de fichiers via le commutateur http, confirmez file_uploads = on

4. (modifier les restrictions de téléchargement du fichier temporaire)

Le fichier est téléchargé à l'endroit où les fichiers temporaires sont stockés sur le serveur. Si cela n'est pas spécifié, le système. Le dossier temporaire par défaut sera utilisé. Si l'erreur système affiche "xxx "Répertoire temporaire xxx", ce répertoire vous demande de définir un répertoire valide. Si aucune erreur n'est signalée, ignorez-le

5. Recherchez upload_max_filesize : (modifiez la limite de taille de téléchargement)

La taille maximale autorisée du fichier de téléchargement, la valeur par défaut est de 2 min, définissez-la à la valeur dont vous avez besoin. Il n'est pas recommandé que ce paramètre dépasse la valeur post_max_size, car il est contrôlé par la valeur post_max_size (même si upload_max_filesize est défini sur 1g,

Lorsque post_max_size est uniquement défini sur 2 mois, les fichiers de plus de 2 mois ne peuvent toujours pas être téléchargés car ils sont contrôlés par la valeur post_max_size)

6. souhaitez Pour télécharger des fichiers de plus de 8 min, vous devez également définir les paramètres suivants : (modifier la limite de temps de téléchargement)

Trouver max_execution_time = 600 la durée maximale pour chaque page php; pour exécuter Valeur (secondes), 30 secondes par défaut

max_input_time = 600 ; Temps maximum requis pour que chaque page php reçoive des données, 60 secondes par défaut

memory_limit = 8m; La mémoire maximale requise pour chaque page php, la valeur par défaut est de 8m

Solution pour télécharger des fichiers volumineux à l'aide de la méthode nginx

1.client_body_buffer_size Essayez de le définir 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 réglage est trop petit, la vitesse sera réduite. C'est tout simplement trop lent.

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 fondamentalement 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.

Ce qui précède représente l'intégralité du contenu de cet article. J'espère qu'il sera utile à l'étude de chacun. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois !

Recommandations associées :

Utilisation d'heredoc en php

Liaison statique ultérieure de 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