# Fichier trop volumineux : dépasse la limite de téléversement

> Fichier trop volumineux dans WordPress, « dépasse la limite de téléversement » ou erreur 413 ? Réglez upload_max_filesize, post_max_size et nginx : pas à pas.

- Auteur : WordPress Développement
- Publié le : 2026-10-02
- Mis à jour le : 2026-10-02
- URL : https://www.wpmoderne.fr/erreurs-wordpress/fichier-trop-volumineux/

> Le fichier dépasse la plus basse des limites : upload_max_filesize, post_max_size, client_max_body_size (nginx) ou plafond du CDN. Relevez-les ensemble, avec post_max_size supérieur à upload_max_filesize, puis rechargez PHP et le serveur.

Vous glissez une image, une vidéo ou une archive dans la médiathèque, et WordPress refuse le fichier : « nom-du-fichier.jpg dépasse la limite de téléversement de ce site. », ou bien le navigateur affiche « 413 Request Entity Too Large », ou encore le téléversement échoue sans explication claire. La cause est toujours la même : le fichier est plus gros que la taille maximale acceptée par l’un des maillons de la chaîne (PHP, serveur web, WordPress lui-même, CDN ou pare-feu). L’erreur survient dans l’administration : médiathèque, éditeur de blocs, import de thème ou d’extension, formulaires de téléversement.

## Ce que signifie cette erreur

Un téléversement traverse plusieurs limites successives, et c’est la plus basse qui l’emporte. La fonction `wp_max_upload_size()` de `wp-includes/media.php` renvoie le minimum entre les directives PHP `upload_max_filesize` (taille d’un fichier) et `post_max_size` (taille totale de la requête), puis la fait passer dans le filtre `upload_size_limit`. C’est cette valeur qu’affiche la médiathèque : « Taille de fichier maximale pour le téléversement : 2 Mo », par exemple. Le message avec le nom du fichier est produit côté navigateur par le téléverseur de `wp-includes/script-loader.php` (chaîne `file_exceeds_size_limit`) avant même l’envoi ; l’interface récente de l’éditeur affiche une variante : « nom-du-fichier.jpg : ce fichier dépasse la taille maximum de téléversement pour ce site. »

D’autres limites agissent plus en amont, sans que WordPress puisse les connaître. Le serveur web peut refuser la requête avant PHP : nginx répond `413 Request Entity Too Large` quand le corps dépasse `client_max_body_size` (1 Mo par défaut), et Apache le fait avec la directive `LimitRequestBody` si elle est définie. Si `post_max_size` est dépassé, PHP vide silencieusement les données reçues et WordPress affiche : « Le fichier est vide. Veuillez téléverser quelque chose de plus substantiel. Cette erreur peut également être due au fait que les téléversements sont désactivés dans votre fichier php.ini ou que post_max_size est défini comme inférieur à upload_max_filesize dans php.ini. » (`wp-admin/includes/file.php`). Quand c’est `upload_max_filesize` qui est dépassé, le message devient : « Le fichier téléversé dépasse la directive upload_max_filesize dans php.ini. »

Sur un réseau multisite, une limite supplémentaire s’applique : le réglage réseau « Taille maximale des fichiers téléversés » (option `fileupload_maxk`, 1500 Ko par défaut). Le message est alors : « Ce fichier est trop grand. La taille des fichiers doit être inférieure à 1500 Ko. »

## Diagnostic rapide

| Symptôme / constat | Cause probable | À vérifier |
| --- | --- | --- |
| Message avec le nom du fichier avant tout envoi, ou « Taille de fichier maximale… » faible | `upload_max_filesize` ou `post_max_size` trop bas | Santé du site, onglet « Informations », section « Traitement des médias » |
| Page d’erreur « 413 Request Entity Too Large » ou téléversement qui échoue juste après l’envoi | Limite du serveur web ou du proxy (`client_max_body_size`, `LimitRequestBody`) | Journaux d’erreurs nginx ou Apache |
| « Le fichier est vide » alors que le fichier existe | `post_max_size` inférieur à la taille du fichier | Valeur de `post_max_size` |
| Le téléversement s’arrête à environ 100 Mo derrière un CDN | Limite de taille de requête de l’offre CDN | Plan et règles du CDN ou du pare-feu |
| « Ce fichier est trop grand » sur un réseau multisite | Réglage réseau `fileupload_maxk` | Administration du réseau, paramètres |

## Les causes les plus fréquentes

1. Les valeurs par défaut de PHP (souvent 2 Mo pour `upload_max_filesize` et 8 Mo pour `post_max_size`) sur un hébergement non réglé.
2. Une limite plus basse côté serveur web : `client_max_body_size` absent ou trop petit dans nginx.
3. `post_max_size` inférieur à `upload_max_filesize`, ce qui rend la seconde valeur inopérante.
4. Une limite imposée par l’hébergeur, qu’un fichier `.user.ini` ou `php.ini` ne peut pas dépasser.
5. Un pare-feu applicatif (ModSecurity), un CDN ou un proxy qui plafonne la taille des requêtes.
6. Sur un réseau multisite, le plafond `fileupload_maxk`.

## Solutions pas à pas

### 1. Vérifier la limite réelle

Dans l’administration, ouvrez Médias, puis Ajouter : la limite apparaît sous la zone de dépôt. Pour le détail, consultez Outils, Santé du site, onglet « Informations », section « Traitement des médias » : « Taille maximale autorisée pour les données des publications », « Taille maximale des fichiers téléversés » et « Taille de fichier effective maximale ». Avec WP-CLI, en lecture seule :

```
wp eval 'echo size_format( wp_max_upload_size() ) . PHP_EOL;'
```

### 2. Modifier la configuration PHP

Le réglage propre dépend de l’hébergement. Le panneau de l’hébergeur propose souvent un sélecteur PHP. Sinon, éditez le `php.ini` si vous y avez accès :

```
upload_max_filesize = 64M
post_max_size = 72M
memory_limit = 256M
max_execution_time = 300
```

Gardez toujours `post_max_size` supérieur à `upload_max_filesize`. Avec PHP-FPM ou CGI sur un mutualisé, créez plutôt un fichier `.user.ini` à la racine du site avec les mêmes lignes ; il est relu au bout de `user_ini.cache_ttl` secondes (300 par défaut). Avec Apache et PHP en module (mod_php), le `.htaccess` suffit :

```
php_value upload_max_filesize 64M
php_value post_max_size 72M
php_value max_execution_time 300
```

Attention : si PHP ne tourne pas en module Apache, les lignes `php_value` provoquent une erreur 500. Supprimez-les dans ce cas. Après une modification du `php.ini` principal, rechargez PHP-FPM ou Apache (par exemple `systemctl reload php8.2-fpm`, selon votre version).

### 3. Relever la limite du serveur web

Sous nginx, ajoutez la directive dans le bloc `http`, `server` ou `location` concerné, puis testez et rechargez :

```
client_max_body_size 72M;

nginx -t && systemctl reload nginx
```

Sous Apache, vérifiez qu’aucune directive `LimitRequestBody` ne plafonne la requête, dans la configuration du site ou dans un `.htaccess` :

```
# 0 = illimité (valeur par défaut)
LimitRequestBody 0
```

Si un proxy ou un CDN se trouve devant le serveur, vérifiez sa limite propre : Cloudflare plafonne par exemple le corps des requêtes à 100 Mo sur les offres gratuite et Pro. Dans ce cas, contournez le CDN pour les téléversements ou passez par la solution 5.

### 4. Multisite : relever le plafond du réseau

Dans l’administration du réseau, ouvrez Réglages, Paramètres du réseau, et modifiez « Taille maximale des fichiers téléversés » (en Ko). Cette limite s’ajoute à celles de PHP : elle ne les remplace pas.

### 5. Contourner la limite pour un fichier ponctuel

Pour un fichier isolé (vidéo, archive, import volumineux), déposez-le par SFTP dans `wp-content/uploads`, puis enregistrez-le dans la médiathèque avec WP-CLI :

```
wp media import /chemin/vers/video.mp4 --title="Présentation"
```

Plus durablement, évitez d’héberger les grosses vidéos sur WordPress : un service de streaming ou un stockage objet est plus adapté. Notre article sur le [fichier qui dépasse la taille maximale et ses quatre réglages](https://www.wpmoderne.fr/tips/fichier-depasse-taille-maximale-quatre-reglages/) approfondit ce point, comme celui consacré à l’[erreur 413 lors d’un import de médias](https://www.wpmoderne.fr/hebergement/413-request-entity-too-large-import-medias/).

### 6. Réduire le fichier

Compressez et redimensionnez les images avant l’envoi (un appareil photo produit souvent des fichiers de plusieurs mégaoctets pour un affichage de quelques centaines de pixels), convertissez-les en WebP ou AVIF, et compressez les PDF. C’est souvent la solution la plus simple, et elle améliore la performance du site.

## Prévenir l’erreur

- Réglez `upload_max_filesize` et `post_max_size` dès la mise en place d’un nouveau serveur, avec une marge raisonnable (64 Mo suffisent à la plupart des sites éditoriaux).
- Documentez la chaîne complète des limites : PHP, serveur web, proxy ou CDN, et pare-feu.
- Contrôlez le poids des médias avant publication, par exemple avec notre astuce pour [afficher le poids total des médias d’un article](https://www.wpmoderne.fr/tips/afficher-poids-total-medias-article-editeur/).
- Laissez les très gros fichiers à un stockage dédié plutôt qu’à la médiathèque.
- Après toute migration d’hébergeur, revérifiez les limites dans Santé du site.

## FAQ
