Le téléversement de mon module échoue avec « fichier trop volumineux », que faire ?

Question publiée 2645 vues

C’est généralement une limite d’envoi PHP, pas un problème avec le ZIP du module. PrestaShop reçoit le ZIP via le flux normal de fichier téléversé de PHP ; si PHP rejette le fichier en premier, le back-office ne peut afficher qu’une erreur "file too large" ou d’envoi incomplet.

Advanced Parameters > Information affichant les limites PHP d'envoi et de memoire
Advanced Parameters > Information - les limites PHP upload_max_filesize, post_max_size et memory_limit derriere l'erreur 'file too large'.

Demandez à votre hébergeur d’augmenter upload_max_filesize et post_max_size. Définissez post_max_size plus haut que upload_max_filesize, car tout le HTTP POST a son propre overhead. Pour les modules plus gros ou les hébergements mutualisés lents, augmentez aussi max_execution_time pour laisser à PHP le temps de copier et d’extraire l’archive.

; php.ini or .user.ini example
upload_max_filesize = 64M
post_max_size = 80M
max_execution_time = 300
memory_limit = 256M
# Apache + mod_php only, not PHP-FPM
php_value upload_max_filesize 64M
php_value post_max_size 80M
php_value max_execution_time 300

Après avoir changé les paramètres PHP, redémarrez PHP-FPM ou Apache si votre hébergeur l’exige, puis rechargez le back-office PrestaShop et réessayez. Si vous ne pouvez pas modifier ces valeurs, utilisez plutôt FTP/SFTP : décompressez le module localement, copiez le dossier du module dans /modules/, puis installez-le depuis Modules > Module Manager. Le résultat installé est le même qu’après un envoi ZIP réussi.

Toujours bloqué ? Contactez notre équipe support avec le nom du ZIP, la taille du fichier, la version PrestaShop, la version PHP et l’erreur exacte de téléversement.

Quand vous utilisez FTP/SFTP, assurez-vous d’envoyer le dossier qui contient le fichier PHP principal du module. Par exemple, un module dont la source déclare $this->name = 'mprinternallinking' doit se trouver dans /modules/mprinternallinking/, avec mprinternallinking.php et ses dossiers vendor/, controllers/, views/ ou src/ dans ce même dossier. Un dossier wrapper supplémentaire est une cause fréquente d’absence du module dans Module Manager.

Une fois les fichiers en place, ne vous arrêtez pas là. La routine d’installation est ce qui crée les tables du module, enregistre les hooks et ajoute les contrôleurs admin. Dans les modules inspectés, le code d’installation peut aussi réinitialiser opcache, installer le stockage partagé de configuration admin et initialiser des valeurs par défaut. Si vous copiez seulement les fichiers sans jamais cliquer sur Install, ces tables et hooks de base de données manquent.

Si un ancien téléversement échoué a laissé un dossier à moitié créé, supprimez seulement ce dossier de module incomplet avant de réessayer, puis envoyez une copie propre. Ne supprimez pas des caches PrestaShop ou des dossiers de modules sans rapport simplement parce que le téléversement a échoué ; l’échec s’est généralement produit avant même que le code d’installation du module ne s’exécute.

Cette réponse vous a-t-elle été utile ?

Vous avez encore des questions ?

Vous ne trouvez pas ce que vous cherchez ? Envoyez-nous votre question et nous vous répondrons.

Chargement...
Retour en haut