Moodle 5.2 : le sélecteur de fichiers reste bloqué
10 août 2026 · 7 min de lecture
Diagnostic rapide
Si le sélecteur de fichiers ou la zone de téléversement Moodle charge sans fin après une mise à niveau vers 5.2, commencez par les caches, les erreurs JavaScript, les surcharges du thème, les plugins de dépôt, les limites d’upload et le routage. Le spinner signifie que la page s’est affichée, mais que le navigateur n’a pas reçu de réponse valide pour la requête du sélecteur.
La discussion Moodle.org « Upgrade to 5.2 has broken file uploads where the box now never loads » décrit exactement cela : la zone et le bouton du file picker ne chargent jamais. Une discussion liée, « Students can't upload files after upgrading to 5.2 », montre la même douleur côté apprenant.
Pourquoi la page peut marcher alors que le sélecteur échoue
Le sélecteur de fichiers dépend de JavaScript Moodle, de requêtes AJAX, de plugins de dépôt, des sessions, des zones de fichiers brouillon, des limites serveur, des permissions et des templates de thème. Une page Moodle peut paraître normale pendant que la requête du sélecteur échoue en arrière-plan.
La preuve utile n’est donc pas « le site charge ». C’est la première requête réseau qui échoue.
Première correction : purger les caches
Après la mise à niveau, purgez manuellement :
Administration du site > Développement > Purger tous les caches
Ou en CLI :
php admin/cli/purge_caches.phpLe guide de mise à niveau Moodle 5.2 mentionne explicitement que des fonctionnalités manquantes, dont le sélecteur de fichiers, peuvent nécessiter une purge manuelle.
Ouvrez la console et l’onglet réseau
Sur la page cassée, ouvrez les outils développeur puis rechargez. Cherchez :
- erreurs JavaScript ;
- requêtes 403, 404, 500 ou 503 ;
- réponses AJAX qui contiennent du HTML au lieu de JSON ;
- contenu mixte bloqué après un passage HTTPS ;
- requêtes vers le mauvais hôte ou chemin.
Le premier échec réseau est souvent le meilleur indice.
Activez le debugging sur préproduction
Sur une copie de préproduction, activez :
Administration du site > Développement > Débogage
Réglez :
- Messages de débogage :
DEVELOPER - Afficher les messages : oui, en préproduction seulement
Reproduisez ensuite le problème et vérifiez les logs serveur. En production, journalisez plutôt vers des fichiers.
Écartez le thème
Passez temporairement sur Boost en préproduction. Testez :
- ajouter une ressource fichier ;
- déposer un devoir ;
- téléverser une image de cours ;
- ouvrir le sélecteur avec un enseignant ;
- téléverser avec un étudiant.
Si tout fonctionne avec Boost mais pas avec le thème personnalisé, cherchez un template obsolète, un module AMD, un renderer override ou du JavaScript lié à l’ancien balisage.
Écartez les dépôts et plugins de fichiers
Le sélecteur charge les dépôts. Désactivez les dépôts non essentiels en préproduction.
| Composant | Ce qui peut casser |
|---|---|
| Dépôt système de fichiers | Chemin ou permissions |
| Google Drive / OneDrive | OAuth, callback, token ou compte de service |
| Dépôt personnalisé | Incompatibilité Moodle 5.2 |
| Plugins média | Conflit JavaScript ou filtre |
| Antivirus | Requête bloquée ou timeout |
Mettez à jour le plugin fautif ou désactivez-le jusqu’à compatibilité.
Vérifiez les limites PHP et Moodle
Quand le sélecteur s’ouvre mais que l’upload échoue, les limites sont prioritaires. Quand il charge sans fin, elles sont moins probables, mais restent à vérifier.
upload_max_filesize = 128M
post_max_size = 128M
max_file_uploads = 20
max_input_vars = 5000
max_execution_time = 300
memory_limit = 256MPuis vérifiez :
Administration du site > Sécurité > Paramètres de sécurité du site- limites d’upload du cours ;
- limites de remise de devoir ;
- paramètres de dépôt.
Vérifiez moodledata
Moodle stocke les fichiers téléversés dans moodledata, pas dans le dossier du code.
ls -ld /path/to/moodledataLe serveur web doit pouvoir y écrire, mais le dossier ne doit pas être accessible publiquement. Ne corrigez pas les permissions en plaçant moodledata sous public_html.
Vérifiez la racine public et le routeur
Confirmez :
- la racine web pointe vers
moodle/public; $CFG->wwwrootutilise le bon schéma et hôte ;- le contrôle routeur passe ;
- le proxy conserve correctement HTTPS et host.
Si le routeur échoue, corrigez-le d’abord avec Moodle 5.2 : routeur mal configuré.
Ordre pratique
- Purger tous les caches.
- Reproduire avec les outils développeur ouverts.
- Noter la première requête réseau en échec.
- Activer le debugging en préproduction.
- Passer temporairement à Boost.
- Désactiver les dépôts tiers.
- Vérifier limites PHP et Moodle.
- Vérifier
moodledata. - Vérifier routeur et racine web.
- Lancer cron et les tâches ad hoc.
FAQ
Pourquoi le sélecteur charge sans fin ?
Le navigateur attend généralement une réponse AJAX qui échoue, renvoie du JSON invalide ou est bloquée par JavaScript, thème, plugin, session, routeur ou permissions.
Purger les caches peut-il vraiment suffire ?
Oui. Moodle le recommande explicitement après la mise à niveau 5.2 quand des fonctionnalités manquent.
Dois-je réinstaller Moodle ?
Non. Une réinstallation détruit souvent les indices utiles. Trouvez d’abord la requête qui échoue.

Écrit par Choaib Mouhrach
Fondateur et ingénieur logiciel senior
Je conçois et développe des plateformes d’apprentissage sur mesure pour les organisations dont les parcours de formation et de certification sont complexes. Plutôt que d’assembler des plugins et des outils tiers, je crée des systèmes adaptés au fonctionnement réel de chaque activité, afin de réduire la charge administrative et d’améliorer l’expérience des apprenants.
Votre produit d'apprentissage mérite sa propre plateforme.
Si vous voulez offrir une expérience d'apprentissage construite autour de votre produit, de vos apprenants et de vos objectifs, vous êtes au bon endroit. Nous construisons des plateformes qui vous donnent le contrôle et la flexibilité pour grandir sans limites.