Erreurs classiques
La variable MAX_FILE_SIZE
ne peut pas spécifier une taille
de fichier plus grande que la taille qui a été
fixée par upload_max_filesize,
dans le php.ini. La valeur par défaut est 2 megaoctets.
Si une limite de mémoire est activée, une plus grande valeur de
memory_limit peut être nécessaire.
Assurez-vous d'avoir défini une valeur pour
memory_limit assez grande.
Si la valeur de
max_execution_time est trop
petite, le temps d'exécution du script peut excéder cette valeur.
Assurez-vous d'avoir défini une valeur pour
max_execution_time
assez grande.
Note:
max_execution_time affecte
uniquement le temps d'exécution du script. Le temps passé sur l'activité
qui apparaît en dehors de l'exécution du script comme les appels systèmes
avec la fonction system(), la fonction
sleep(), les requêtes sur les bases de données, le temps
mis pour effectuer le téléchargement du fichier, etc. n'est pas inclus lors
du calcul du temps maximal de l'exécution du script.
Avertissement
max_input_time définit le temps
maximal, en secondes, au script pour recevoir les données ; cela inclut le
téléchargement du fichier. Pour les fichiers multiples, ou les gros
fichiers, ou encore pour les utilisateurs sur des connexions lentes,
la valeur par défaut de 60
secondes peut être dépassée.
Si post_max_size est défini de façon
trop faible, les gros fichiers ne pourront pas être téléchargés. Assurez-vous
de définir post_max_size
avec une taille suffisante.
La configuration de
max_file_uploads contrôle le nombre
maximum de fichiers qui peuvent être envoyés en une requête. Si le nombre de fichiers
envoyés dépasse cette limite, alors $_FILES arrêtera la réception.
Par exemple, si max_file_uploads vaut
10
, alors $_FILES ne contiendra jamais plus de
10 entités.
Ne pas valider les fichiers que vous manipulez peut donner l'accès
aux utilisateurs à des fichiers sensibles dans d'autres dossiers !
Du fait de la grande diversité des systèmes, nous ne pouvons garantir que les fichiers
avec des noms exotiques (par exemple, ceux contenant des espaces) seront
traités correctement.
Le développeur ne doit pas mixer les champs input
normaux et les champs de téléchargement dans une même variable
(en utilisant un nom d'input
comme
foo[]
).