Jump to content

Problème upload images produits suite mises à jour serveurs 1and1


Sirludo002

Recommended Posts

Bonjour,

 

Depuis le 3 novembre, un bug est apparu sur ma boutique Prestashop Version 1.1.0.5 hébergée sur un espace mutualisé 1and1.

 

Lorsque j'essaye d'uploader une image d'un produit sur ce serveur, quelque-soit l'image en question, j'obtiens le message d'erreur suivant:

 

"format de l'image non reconnu ; formats acceptés : GIF, JPG, PNG".

image1va.png

 

 

J'ai bien vérifié avec un vaste panel d'images (types différents, tailles différentes) et je suis certain que le comportement n'est pas normal.

 

 

J'ai regardé si 1and1 n'avait pas changé quelque chose car je n'ai rien touché de mon côté qui aurait pu générer cette anomalie et je suis tombé sur le lien suivant qui décrit une mise à jour datant de ces derniers jours sur les serveurs 1and1: http://blog.unesourisetmoi.info/index.php?article682/mise-a-jour-des-serveurs-web-sur-1and1

 

Avez-vous observé le même soucis de votre côté?

 

J'ai l'impression que le type MIME des images que j'envoie vers le serveur n'est plus reconnu de la bonne manière.

 

Merci beaucoup d'avance pour votre aide car là je suis bloqué.

 

Cordialement.

Link to comment
Share on other sites

Bonjour,

 

Je rencontre le même problème que vous depuis la mise à jour des serveurs linux 1&1. Il m’est impossible de charger une photo pour mes nouveaux produits, j’obtiens le même code erreur : "format de l'image non reconnu ; formats acceptés : GIF, JPG, PNG".

 

Je suis en Version 1.1.0.5, hébergé chez 1&1 en serveur mutualisé linux. Le site ne rencontre aucun autre problème.

 

Mail envoyé au support prestashop le 04 novembre, je n’ai pas encore de réponse, j’espère en avoir une sous peu :)

 

Si quelqu’un à une idée ?

 

Cordialement

Link to comment
Share on other sites

J'ai corrigé le problème de la manière suivante:

 

J'ai téléchargé la dernière version de Prestashop.

 

Dans le fichier image.inc.php, j'ai recherché la fonction isPicture($file).

 

J'ai remplacé la fonction de la version 1.1 par celle de la dernière version.

Je n'ai plus le problème.

Link to comment
Share on other sites

Bonjour Sirludo002

 

Merci pour votre post :) pourriez-vous svp me détailler plus en détail la marche à suivre, car dans le fichier image.inc.php de la version 1.1.0.5 j’ai remplacé le code suivant :

 

 if (!isPicture($file))
 return Tools::displayError('image format not recognized, allowed formats are: .gif, .jpg, .png');
if ($file['error'])
 return Tools::displayError('error while uploading image; change your server\'s settings');
return false

 

Par le code du fichier image.inc.php de la dernière version (1.4.5.1) :

 

 if (!isPicture($file))
 return Tools::displayError('Image format not recognized, allowed formats are: .gif, .jpg, .png');
if ($file['error'])
 return Tools::displayError('Error while uploading image; please change your server\'s settings.').'('.Tools::displayError('Error code: ').$file['error'].')';
return false;

 

Mais j’ai toujours un message d’erreur lors du chargement de la photo du produit.

 

Pourriez-vous svp copier le code de votre fichier image.inc.php pour me confirmer qu’il ne manque pas quelques choses.

 

Merci d’avance

Cordialement

Link to comment
Share on other sites

RE,

 

J'ai finalement trouvé excusez moi...

 

Je fait le copié collé du code à changer dans le fichier image.inc.php de la version 1.1.0.5.

 

Remplacer:

function isPicture($file)
{
   /* Detect mime content type */
   $mime_type = false;
   $types = array('image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');
   if (function_exists('finfo_open'))
   {
    $finfo = @finfo_open(FILEINFO_MIME);
    $mime_type = @finfo_file($finfo, $file['tmp_name']);
    @finfo_close($finfo);
   }
   elseif (function_exists('mime_content_type'))
    $mime_type = @mime_content_type($file['tmp_name']);
   elseif (function_exists('exec'))
    $mime_type = trim(@exec('file -bi '.escapeshellarg($file['tmp_name'])));
 if (empty($mime_type))
 $mime_type = $file['type'];
   // is it a picture ?
   return $mime_type && in_array($mime_type, $types);
}

Par ce code là:

function isPicture($file, $types = NULL)
{
   /* Detect mime content type */
   $mimeType = false;
   if (!$types)
    $types = array('image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');
   /* Try 4 different methods to determine the mime type */
   if (function_exists('finfo_open'))
   {
    $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
    $finfo = finfo_open($const);
	 $mimeType = finfo_file($finfo, $file['tmp_name']);
    finfo_close($finfo);
   }
   elseif (function_exists('mime_content_type'))
    $mimeType = mime_content_type($file['tmp_name']);
   elseif (function_exists('exec'))
   {
    $mimeType = trim(exec('file -b --mime-type '.escapeshellarg($file['tmp_name'])));
    if (!$mimeType)
	    $mimeType = trim(exec('file --mime '.escapeshellarg($file['tmp_name'])));
    if (!$mimeType)
	    $mimeType = trim(exec('file -bi '.escapeshellarg($file['tmp_name'])));
   }
   if (empty($mimeType) OR $mimeType == 'regular file' OR $mimeType == 'text/plain')
    $mimeType = $file['type'];
   /* For each allowed MIME type, we are looking for it inside the current MIME type */
   foreach ($types AS $type)
    if (strstr($mimeType, $type))
	    return true;
   return false;
}

 

Merci Sirludo002 tu m'a sorti de la galère :)

ps: oubli pas de mettre résolu, en éspérant que sa serve à d'autres :rolleyes: a+++

Link to comment
Share on other sites

  • 3 months later...
  • 4 months later...

Iep. Comme ndemathieu, problème depuis juin 2012 sur une boutique en 1.1.0.5 installée il y a longtemps (et en production) sur un ovh mutualisé. Problème donc résolu grâce à ce post (donc merci au passage), et je pense qu'il faut peut être fouiller du côté de la mise à jour des serveurs ou un truc du genre.

Link to comment
Share on other sites

  • 3 months later...

Bonjour,

 

Je rencontre actuellement ce problème.

 

J'utilise prestashop 1.4.7.0.

Mon site est hébergé sur viaduc.

 

Dans cette version de prestashop la fonction isPicture est celle proposée dans la solution de MasterS.

Pourtant le problème est bien présent!!!

 

Je suis complètement bloqué, pouvez-vous m'aider, svp?

 

Merci d'avance.

Link to comment
Share on other sites

  • 3 weeks later...
  • 2 weeks later...
  • 1 month later...

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...