web-dev-qa-db-fra.com

Erreur HTTP lors du téléchargement de fichiers supérieurs à 7 Mo sauf si vous utilisez Gd Image Editor

J'ai remarqué récemment que lorsque je télécharge des fichiers de plus de 7 Mo sur un site Wordpress que j'ai développé, j'obtiens une erreur HTTP. J'ai vérifié certaines de mes variables PHP et vérifié que memory_limit est défini sur 256M et que les deux méthodes post_max_size et upload_max_filesize sont définies sur 128M. Après avoir lu ce fil , j’ai essayé d’installer le plugin Default to Gd qui utilise Gd comme classe par défaut WP_Image_Editor.

Après l'installation du plugin, le problème ne se pose plus. Cela dit, je suis curieux de savoir s'il existe un moyen de résoudre ce problème avec la nouvelle classe WP_Image_Editor?

J'ai également remarqué que, lorsque l'erreur HTTP apparaissait, je pouvais consulter les fichiers joints à l'article auquel j'avais ajouté le fichier et voir que le fichier était réellement là et avait été téléchargé avec succès. Cependant, Wordpress semble avoir des problèmes pour l'afficher dans le navigateur de média.

J'ai également remarqué que si je télécharge plusieurs images volumineuses de plus de 7 Mo, je verrai l'image la plus récente comme premier élément de la médiathèque. Si je supprime cette image, je verrai la prochaine image la plus récemment téléchargée. Pour une raison quelconque, Wordpress ne peut afficher que l’image la plus récente et la vignette semble brisée. Toutefois, si vous accédez à l'URI du fichier téléchargé, vous pouvez voir que le fichier a été transféré avec succès.

Quelqu'un a-t-il une idée de ce qui se passe là-dedans et s'agit-il d'une erreur connue dans Wordpress qui est en cours de résolution? Merci!

1
Hendeca

Parfois, j'ai exactement le même problème et les mêmes symptômes.

Cela est dû au fait que l'image est trop grande pour la mémoire disponible. Pas la taille du fichier car elle contient des données compressées, mais la largeur réelle x hauteur x colourdepth.

Vous pouvez voir l'image en taille réelle car elle a été téléchargée correctement. Vous avez des problèmes dans le navigateur de supports car WP n'a plus de mémoire disponible lors de la mise à l'échelle et du rognage de l'image. Aucune version n'est donc disponible pour la vignette du navigateur de supports.

J'ai toujours constaté qu'allouer beaucoup plus de mémoire au processus le corrige. Ou utilisez des images plus petites (dimensions, pas la taille du fichier).

WordPress utilisera le plus élevé de WP_MAX_MEMORY_LIMIT et votre limite de mémoire PHP, aussi longtemps que votre hébergement le permet, le plus simple est de définir WP_MAX_MEMORY_LIMIT dans votre wp-config.php:

define( 'WP_MAX_MEMORY_LIMIT', '257M' ); // you choose how much

La valeur par défaut est quand même 256 Mo pour la gestion des images, donc si vous avez des problèmes pour redimensionner les images, il doit être supérieur à 256 M.

Tant que votre hôte autorise PHP à augmenter la mémoire en utilisant @ini_set, cela fonctionnera.

2

Vous devrez changer votre limite de mémoire dans votre fichier php.ini. Vous voudrez ajouter ou mettre à jour les informations suivantes:

define('WP_MEMORY_LIMIT', '256M');

D'après mon expérience personnelle, je ne ferais pas 256 Mo, mais je le ferais peut-être 60, contre 40 comme vous l'avez dit plus haut.

0
Evaluation Unit

si vous utilisez le serveur web de base Apache, vous pouvez utiliser ce code dans votre fichier htaccess

SetEnv MAGICK_THREAD_LIMIT 1

J'ai résolu mon problème en utilisant ce code. Tu peux essayer.

0
Ariful Islam