Jump to content

Bug upload image (objet personnalisé)


Recommended Posts

Bonsoir,

J'ai crée un produit personnalisable avec la possibilité pour le client d'uploader une image mais au moment de d’enregistrer l'image rien ne se passe sauf une page blanche.

J'ai testé sur une installation de prestashop en local et le problème est identique.

http://www.livres-perso.fr/fr/objets-personnalises/24-mug-personnalise.html

Merci d'avance pour votre aide.

Link to comment
Share on other sites

  • 1 month later...

En local j'obtiens

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2439 bytes) in /Applications/MAMP/htdocs/prestashop/images.inc.php on line 225




Ligne 225 de images.inc.php

$white = imagecolorallocate($destImage, 255, 255, 255);

Link to comment
Share on other sites

En local j'obtiens

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 2439 bytes) in /Applications/MAMP/htdocs/prestashop/images.inc.php on line 225





Ligne 225 de images.inc.php

$white = imagecolorallocate($destImage, 255, 255, 255);

Link to comment
Share on other sites

Impeccable en local en passant la valeur à 60M

Le script fonctionne.

Maintenant il ne me reste qu'a régler le problème sur mon serveur web (ovh)

Je suis en mutualisé donc je ne pense pas pouvoir modifier cette valeur.

Merci d'avance pour vos réponse.

Link to comment
Share on other sites

Sur mon serveur je n'obtiens pas la même erreur :

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully in /homez.425/livrespe/www/images.inc.php on line 225

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in /homez.425/livrespe/www/images.inc.php on line 227

Warning: imagefilledrectangle(): supplied argument is not a valid Image resource in /homez.425/livrespe/www/images.inc.php on line 228

Warning: imagecopyresampled(): supplied argument is not a valid Image resource in /homez.425/livrespe/www/images.inc.php on line 230

Warning: imagecolortransparent(): supplied argument is not a valid Image resource in /homez.425/livrespe/www/images.inc.php on line 231

Warning: imagejpeg(): supplied argument is not a valid Image resource in /homez.425/livrespe/www/images.inc.php on line 308

Warning: imagedestroy(): supplied argument is not a valid Image resource in /homez.425/livrespe/www/images.inc.php on line 311

Link to comment
Share on other sites

  • 4 weeks later...

Bonjour, je relance le sujet.

Pour corriger ce problème de mémoire j'ai pris un sql privé.

Mais j'ai toujours le même problème.

je viens d'essayer avec une image de 4ko et j'ai cette erreur :

Warning: imagecreatetruecolor() [function.imagecreatetruecolor]: gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully in /homez.425/livrespe/www/images.inc.php on line 225

Link to comment
Share on other sites

  • 3 years later...

Bonjour,

Après une upgrade en Presta 1.6.0.14, j'ai la même erreur que vous lorsqu'un client veut uploader une image, quelle que soit sa taille, dans la personnalisation du produit:

Warning: imagecreatetruecolor(): gd warning: product of memory allocation multiplication would exceed INT_MAX, failing operation gracefully in public_html/classes/ImageManager.php on line 228

Warning: imagecolorallocate() expects parameter 1 to be resource, boolean given in public_html/classes/ImageManager.php on line 240

Warning: imagefilledrectangle() expects parameter 1 to be resource, boolean given in public_html/classes/ImageManager.php on line 241

Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in public_html/classes/ImageManager.php on line 244

Warning: imageinterlace() expects parameter 1 to be resource, boolean given in public_html/classes/ImageManager.php on line 474

Warning: imagejpeg() expects parameter 1 to be resource, boolean given in public_html/classes/ImageManager.php on line 475

Warning: imagedestroy() expects parameter 1 to be resource, boolean given in public_html/classes/ImageManager.php on line 478

Pourtant l'image est bien chargée dans le dossier upload. Ce n'est donc pas un problème de taille d'upload (ça le fait aussi avec de toutes petites images)

 

Comment avez-vous résolu le problème?

 

Qui aurait une idée?

 

Cordialement

Edited by MonBlason (see edit history)
Link to comment
Share on other sites

  • 4 weeks later...
  • 2 months later...

La ligne 228 qui pose pb dans le fichier ImageManager.php est:

$dest_image = imagecreatetruecolor($dst_width, $dst_height);

Même si je shunte cette fonction j'obtiens toujours:

Il y a 1 erreur

    Une erreur est survenue durant l'envoi de l'image

Je tourne en rond sur ce problème depuis deux mois, y aurait-il une âme charitable pour éclairer ma lanterne?

 

Voici en complément la configuration PHP de mon serveur. La limite d'envoi de fichier est à 512M, donc le problème ne vient pas de là non plus.

 

D'où peuvent venir ces erreurs?

Edited by MonBlason (see edit history)
Link to comment
Share on other sites

Bonjour,

Merci pour votre réponse.

Non, l'espace disque du serveur est illimité (je suis chez O2switch). Je peux charger de nouveaux fichiers sans problème via FTP.

Le problème semble venir d'une fonction de la librairie GD mais là encore tout est en ordre, GD2 est bien à jour...

Link to comment
Share on other sites

Si ça peut aider ceux qui sont dans le même cas, faute de réponse de la communauté Prestashop, j'ai fait appel à un prestataire pour résoudre ce bug.

 

Il s'avère que c'est bien un bug Prestashop:

 

Dans le fichier classes/imagemanager.php, il faut faire commencer la fonction resize ainsi:

public static function resize($src_file, $dst_file, $dst_width = null, $dst_height = null, $file_type = 'jpg', $force_type = false, &$error = 0)
{
$dst_width = 0;
$dst_height = 0;

Au début de cette fonction, lignes 134 et 135, on définit simplement à zéro les variables correspondant à la largeur et la hauteur de l'image de destination (la version small), et cela résout le problème. Le fait de définir ainsi ces variables permet au language php de savoir sans ambiguité qu'il s'agit d'entiers, et évite ainsi le message d'erreur lors de la génération de la version small.

La fonction imagecreatetruecolor() semble donc vérifier le type des paramètres qui lui sont passés, et déclencherait donc un message d'erreur si ce ne sont pas des entiers.

 

Il est possible que cette erreur survienne uniquement dans certaines versions de php, et pas dans d'autres.

A noter que ma boutique est en PHP Version 5.5.25.

 

Comment fait-on pour remonter ce bug à l'équipe de développeurs de Prestashop?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...