Upload de fichiers : échec silencieux quand le fichier dépasse post_max_size (8M) #48
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptôme
L'ajout d'un ou plusieurs fichiers via
/files/{uuid}/addéchoue silencieusement : le formulaire soumet, la page redirige vers/edit/{uuid}, mais aucun fichier n'est ajouté.Cause identifiée
Log Apache du 2026-05-13 :
Le fichier uploadé fait ~8,7 Mo, ce qui dépasse
post_max_size = 8M(valeur par défaut PHP). Quand cette limite est dépassée, PHP vide$_FILESet$_POSTentièrement. Le handleradd_filesitère alors sur un tableau vide, ne fait rien, et redirige vers l'édition — sans aucun message d'erreur.Double problème
1. Limite trop basse
post_max_sizeetupload_max_filesizeà 8M est insuffisant pour des fichiers courants (photos ~5-10 Mo, vidéos, PDF lourds). À augmenter dans la config PHP-FPM.2. Échec silencieux
Le handler
add_files(ligne ~1193 danspublic/index.php) ne détecte pas le cas où$_FILESest vide à cause d'un dépassement depost_max_size. Il faudrait :$_SERVER['CONTENT_LENGTH'] > 0 && empty($_FILES)après un POSTFichiers concernés
app/public/index.php— caseadd_files(~ligne 1185)/etc/php/8.3/fpm/pool.d/www.confouphp.iniFix suggéré
upload_max_filesizeetpost_max_sizeà 32M (ou 64M) dans la config PHP-FPMadd_filesune détection du dépassement :Résolution
1. Config PHP-FPM
Ajout dans
server/php-fpm/www.conf(poolwww) :Déployé et
php8.3-fpmrechargé (systemctl reload php8.3-fpm).2. Détection du dépassement (
public/index.php)Le handler
add_filesdétecte maintenant le cas où$_FILESest vide malgré un POST non vide (signature d'un dépassementpost_max_size) et reste sur la page avec un message d'erreur au lieu de rediriger silencieusement.3. Affichage de l'erreur (
templates/add_files.php)Un bloc
alert-dangers'affiche si$addFilesErrorest défini.Fichiers déployés :
public/index.php,templates/add_files.php.Addendum — correction complète
Le serveur utilise mod_php (non PHP-FPM). Tous les changements précédents dans le pool FPM (
www.conf) étaient sans effet.Fix réel : modification de
/etc/php/8.3/apache2/php.ini:Suivi d'un
systemctl restart apache2. Valeurs vérifiées via un script de test : 2048M / 500M actifs.