Skip to content

Tout pour WordPress, le développement web — et plus encore

La limite de téléversement de fichiers dans WordPress : combien et où la modifier

Indiquez la taille des fichiers à téléverser — l'outil calculera un jeu de valeurs cohérent et montrera quelle méthode fonctionnera sur votre type de serveur. Tout est calculé dans le navigateur, rien n'est envoyé nulle part.

Quel doit être le poids du plus gros fichier que vous prévoyez de téléverser.
La médiathèque WordPress envoie les fichiers un par un. Les formulaires personnalisés à plusieurs champs les envoient en une seule requête.
Si vous ne savez pas, regardez phpinfo(), la ligne Server API : Apache 2.0 Handler = mod_php, FPM/FastCGI = PHP-FPM, LiteSpeed = LSAPI.
DirectivePourquoi précisément cette valeurValeur


    
Pourquoi ça n'a pas marché : liste de contrôle Les valeurs sont bien écrites, mais la limite n'a pas bougé — c'est presque toujours l'un des neuf points ci-dessous.

Limite stricte de l'hébergeur. Une valeur supérieure à ce qu'autorise l'offre est silencieusement rognée : 512M dans le fichier, 64M dans phpinfo(). Seule une demande au support permet de la lever.

Vous avez modifié le mauvais php.ini. Le fichier actif est indiqué dans phpinfo() à la ligne Loaded Configuration File ; à côté figure Additional .ini files parsed — ces fichiers sont lus eux aussi et peuvent redéfinir vos valeurs.

LimitRequestBody dans Apache. La limite du serveur web lui-même, en octets, dans le vhost ou dans .htaccess. Elle coupe le corps de la requête avant PHP — l'utilisateur voit 413 et les journaux PHP restent vides.

Le processus PHP n'a pas été redémarré. php.ini n'est lu qu'une fois au démarrage. Avec PHP-FPM, il faut redémarrer FPM lui-même — redémarrer nginx ou Apache ne relit pas le pool.

.user.ini n'est pas pris en compte immédiatement. PHP le met en cache pendant user_ini.cache_ttl secondes (300 par défaut). Attendez 5 minutes ou redémarrez FPM.

OPcache. Il ne met pas php.ini en cache, mais il met bien en cache votre wp-config.php avec son @ini_set. Après modification : opcache_reset() ou redémarrage du processus.

Un proxy en amont. Cloudflare limite les envois à 100 Mo sur l'offre gratuite ; un répartiteur de charge, Engintron ou nginx devant Apache possède son propre client_max_body_size.

Une limite imposée par WordPress. Multisite : Réseau → Réglages → Taille maximale des fichiers (en Ko). Plus le filtre upload_size_limit, que certains thèmes et extensions de sécurité définissent.

Dossier temporaire. Si upload_tmp_dir n'est pas accessible en écriture ou si la partition est pleine, le fichier n'arrive pas, sans erreur explicite. Vérifiez sys_get_temp_dir() et l'espace disponible.

Le calcul s'effectue dans votre navigateur — aucune donnée concernant le serveur n'est envoyée où que ce soit.

Pourquoi modifier seulement upload_max_filesize ne suffit presque jamais

La taille de téléversement est limitée par au moins quatre valeurs indépendantes, et c'est la plus petite qui s'applique. upload_max_filesize — la taille d'un fichier. post_max_size — la taille de la requête POST entière. Elle doit être supérieure à upload_max_filesize, sinon le fichier est coupé avant même la vérification de la première limite. memory_limit — doit contenir toute la requête ; pour WordPress, 256M au minimum. client_max_body_size — la limite de nginx. C'est celle qu'on oublie le plus souvent : PHP autorise déjà tout, mais nginx renvoie 413 Request Entity Too Large. La méthode est un piège à part. Les directives php_value dans .htaccess ne fonctionnent QUE si PHP est chargé comme module Apache (mod_php). Sur les hébergements modernes, PHP tourne presque toujours en FPM, et une telle ligne est alors soit ignorée en silence, soit à l'origine d'une 500 Internal Server Error. C'est précisément pour cela que l'outil demande le type de serveur et affiche le bloc qui vous aidera vraiment.

Questions fréquentes