Jump to content

format de l'image non reconnu (résolu)


Recommended Posts

Bonjour à tous,

La question a déjà été posée mais je n'ai rien trouvé comme réponse adaptée...
Quand je veux ajouter une image pour un produit, j'ai le message d'erreur suivant "format de l'image non reconnu ; formats acceptés : GIF, JPG, PNG"

Le site en test :

http://www.maloulou.com/OW/

Version 1.3.1.1

D'avance merci!

NB/J'ai testé avec tous les types d'images (jpg, gif, png,...)

27378_L3b6jGlSGcKWedMwdnUa_t

Link to comment
Share on other sites

Avec Photoshop... Enregistrées dans toutes les tailles et tous les formats... J'ai tenté de changer les droits en écriture sur le dossier image mais rien n'y fait... Pourtant quand j'enregistre une image avec le même nom qu'une qui est déjà sur le serveur (une image prestashop), ça marche... mais c'est franchement pas très pratique et je vais être à court de possibilités assez rapidement... Je deviens dingue, ça doit être une connerie... Une piste?

Link to comment
Share on other sites

Bonjour, as tu vérifié à tout hasard que le nom de tes photos ne possède pas des caractères interdits ? Vérifie la taille et essaye de rouvrir ton fichier avec Paint puis de l'enregistrer, peut être un format couleur pas adapté.

Boutique déjà en ligne ou pas ? Sinon travaillez en local puis importez le tout après.

Link to comment
Share on other sites

Merci pour la piste...
Le nom des images ne comporte pas de caractères interdits, j'ai tenté avec des trucs genre 22.png, test.jpg,... La taille, j'ai surtout travaillé avec les tailles du template donc ça devrait être bon... J'ai pas paint mais je pourrais essayer mais j'ai des doutes vu que j'utilise le profil rvb pour le web de photoshop...
La boutique est pas encore (vraiment) en ligne, elle est juste sur mon serveur pour mes tests en direct... L'idée était de me familiariser avec prestashop, ça commence bien!

Link to comment
Share on other sites

Salut, j'ai eu le même problème.
version 1.3.1

J'ai fait sauter le contrôle finfo_open dans images.inc.php.

Bizarrement il retourne "applicatopn/octetstream" au lieu de "image/jpeg" comme type mime.

Du coup je récupère l'info dans la variable $file par $file["type"] et ca marche.
Je te colle le code de la fonction isPicture du fichiers images.inc.php qui se trouve à la racine du site

function isPicture($file, $types = NULL)
{
   /* Detect mime content type */
   $mime_type = false;
   if (!$types)
       $types = array('image/gif', 'image/jpg', 'image/jpeg', 'image/pjpeg', 'image/png', 'image/x-png');
/*
   if (function_exists('finfo_open'))
   {
       $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
       $finfo = finfo_open($const);
       $mime_type = finfo_file($finfo, $file['tmp_name']);
       echo $mime_type.$file['type'];
       finfo_close($finfo);
       echo 'finfo';
   }
   elseif (function_exists('mime_content_type')) 
       $mime_type = mime_content_type($file['tmp_name']);
   elseif (function_exists('exec')) 
       $mime_type = trim(exec('file -b --mime-type '.escapeshellarg($file['tmp_name'])));
*/
   if (empty($mime_type) || $mime_type == 'regular file')
       $mime_type = $file['type'];
   if (($pos = strpos($mime_type, ';')) !== false)
       $mime_type = substr($mime_type, 0, $pos);
   // is it a picture ?
   return $mime_type && in_array($mime_type, $types);
}



En espérant que ça te serve
@+

Link to comment
Share on other sites

Merci bcp!

Entre temps un pote m'a aidé à trouver la solution :

j'ai cherché le soucis,
en fait le type mime trouvé est : application/octet-stream
je sais pas pourquoi


j'ai fait la modif suivante : (j'ai mis en commentaire l'ancien code)
Dans images.inc.php
à la ligne 76 : $mime_type = $finfo['type']; // $mime_type =
finfo_file($finfo, $file['tmp_name']);


Ca a l'air d'être la même...

Grand merci en tt cas, en espérant que ça serve à d'autres...

++

Link to comment
Share on other sites

  • 2 weeks later...

Slt,

Dernier version d'installé chez une hébergeur payant !
Check de mes images bmp avec un soft genre chckbmp (toutes nickel)
Et à l'import d'image (à la création de catégorie)
BIM, même problème que vous.


Bon, ca ma pas gonfler longtemps, j'ai viré la ligne de vérification dans le code :)
ou plus exactement commenté :

Ligne 58 et 59
dans la fonction checkImage donc
if (!isPicture($file))
return Tools::displayError('image format not recognized, allowed formats are: .gif, .jpg, .png');

par

//if (!isPicture($file))
// return Tools::displayError('image format not recognized, allowed formats are: .gif, .jpg, .png');


VOILA, plus de check :)

Link to comment
Share on other sites

  • 1 month later...

Merci
j avais le meme probleme j ai fait sauter la fonction de checking image pas bete du tout.
Une foie que tu as fini de passer les image tu remet comme avant ou pas? ( juste pour savoir si ca peut avoir des consequences negatives pour la suite.)

A plus

Link to comment
Share on other sites

  • 1 month later...

Le problème (chez moi) vient du fait que l'appel à la fonction finfo_open() sans préciser le second argument (magic_file) utilise le fichier /etc/magic qui ne contient pas grand chose.

En forçant l'utilisation du fichier /usr/share/file/magic ça fonctionne mieux.

Par exemple :

--- images.inc.php.old  2010-04-11 22:26:08.000000000 +0200
+++ images.inc.php      2010-10-27 13:43:10.356059483 +0200
[spam-filter] -72,7 +72,7 [spam-filter]
       if (function_exists('finfo_open'))
       {
               $const = defined('FILEINFO_MIME_TYPE') ? FILEINFO_MIME_TYPE : FILEINFO_MIME;
-               $finfo = finfo_open($const);
+               $finfo = finfo_open($const, "/usr/share/file/magic");
               $mime_type = finfo_file($finfo, $file['tmp_name']);
               finfo_close($finfo);
       }



---
Debian/lenny
Prestashop 1.3.2.3

Link to comment
Share on other sites

  • 2 months later...

Bon, ca ma pas gonfler longtemps, j'ai viré la ligne de vérification dans le code :)
ou plus exactement commenté :

Ligne 58 et 59
dans la fonction checkImage donc
if (!isPicture($file))
return Tools::displayError('image format not recognized, allowed formats are: .gif, .jpg, .png');

par

//if (!isPicture($file))
// return Tools::displayError('image format not recognized, allowed formats are: .gif, .jpg, .png');


VOILA, plus de check :)


Merci, c'est parfait, simple et efficace...
Link to comment
Share on other sites

je viens de passer de la version 1.3.3 à 1.3.5, depuis j'ai le meme pb, j'ai suivie les instruction, mais jarive pas a corriger le pb. peut etre je modifier le mauvais fichier image.inc

pouvez vous m'aider


J'ai eu la même chose sur une boutique. J'ai de nouveau re-télécharger presta 1.3.5 aujoud'hui et remplacer image.inc

Ca refonctionne correctement.
Link to comment
Share on other sites

  • 2 months later...

Dans image.inc.php

vers la la ligne 58 dans la fonction suivante :

function    checkImage($file, $maxFileSize) 
{
   if ($file['size'] > $maxFileSize)
       return Tools::displayError('image is too large').' ('.($file['size'] / 1000).Tools::displayError('KB').'). '.Tools::displayError('Maximum allowed:').' '.($maxFileSize / 1000).Tools::displayError('KB');
   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').'('.Tools::displayError('Error code: ').$file['error'].')';
   return false;
}



Enlevez le point d'exclamation pour transformer

if (!isPicture($file))



en

if (isPicture($file))



cela doit fonctionner ensuite sans problème

Link to comment
Share on other sites

  • 2 months later...

Bon, ca ma pas gonfler longtemps, j'ai viré la ligne de vérification dans le code :)
ou plus exactement commenté :

Ligne 58 et 59
dans la fonction checkImage donc
if (!isPicture($file))
return Tools::displayError('image format not recognized, allowed formats are: .gif, .jpg, .png');

par

//if (!isPicture($file))
// return Tools::displayError('image format not recognized, allowed formats are: .gif, .jpg, .png');


VOILA, plus de check :)




J'ai appliqué cette solution, mais j'ai toujours le message d'erreur???
format de l'image non reconnu ; formats acceptés : GIF, JPG, PNG

est-ce-qu'une autre fonction gère çà???
Avec traduction en plus...

J'ai essayé toutes les propositions proposées dans le forum mais pas possible de uploader une image produit depuis 1 mois, alors qu'auparavant cela fonctionnait. Aucun changement de ma part sur le serveur...
Version Prestashop 1.3.5.0
Link to comment
Share on other sites

  • 2 months later...

Pour information j'ai eu exactement le même problème (résolu grâce à la solution de xav6279, merci) sans rien modifier, sans mettre jour, mais en migrant la boutique d'un serveur (vieux gentoo) à un autre (debian à jour).

Je n'ai pas pris le temps de tout lire et j'arrive après la bataille, mais bon si ça peut en aider d'autres...

Rodolphe

Link to comment
Share on other sites

  • 2 years later...

Bonjour,

 

Bien que j'arrive en retard et que le sujet soit résolu, j'ai besoin de votre aide.

J'ai lu tous vos com's et j'ai testé les codes mais toujours aucun changement de mon côté.

 

J'utilise la toute dernière version du logiciel. 1.6.0.6

Link to comment
Share on other sites

  • 1 month later...

Bonjour, 

 

J'arrive moi aussi en retard ! Je suis dans le meme cas que Leo04

j'ai testé vos codes et recommandations mais ca bugge toujours.

 

J'utilise pour ma part la version 1.6.0.8

 

Peut être un bug à corriger dans cette nouvelle version de presta pour les développeurs ? 

Link to comment
Share on other sites

  • 11 months later...

Bonjour,

j'ai installer tout dernierement la version de prestashop 1.6.1.0 et j'ai le meme souci avec les image " image2.jpg : format de l'image non reconnu ; formats acceptés : GIF, JPG, PNG" .

Je n'arrive pas à importer les images ni pour mes produit,ni sur les catalogue, par contre j'ai éssayé les solutions que vous avez proposé en allant dans image.ini.php mais le problème est que j'ai pas du tout le même code,il m'a l'aire trop generique. voici son contenu:

 

function cacheImage($image, $cacheImage, $size, $imageType = 'jpg', $disableCache = false)
{
    Tools::displayAsDeprecated();
    return ImageManager::thumbnail($image, $cacheImage, $size, $imageType, $disableCache);
}

/**
 * @deprecated 1.5.0
 */
function checkImage($file, $maxFileSize = 0)
{
    Tools::displayAsDeprecated();
    return ImageManager::validateUpload($file, $maxFileSize);
}

/**
 * @deprecated 1.5.0
 */
function checkImageUploadError($file)
{
    return ImageManager::getErrorFromCode($file['error']);
}

/**
 *  @deprecated 1.5.0
 */
function isPicture($file, $types = null)
{
    Tools::displayAsDeprecated();
    return ImageManager::isRealImage($file['tmp_name'], $file['type'], $types);
}

/**
  * @deprecated 1.5.0
  */
function checkIco($file, $maxFileSize = 0)
{
    Tools::displayAsDeprecated();
    return ImageManager::validateIconUpload($file, $maxFileSize);
}

/**
  * @deprecated 1.5.0
  */
function imageResize($sourceFile, $destFile, $destWidth = null, $destHeight = null, $fileType = 'jpg')
{
    Tools::displayAsDeprecated();
    return ImageManager::resize($sourceFile, $destFile, $destWidth, $destHeight, $fileType);
}

/**
 * @deprecated 1.5.0
 */
function imageCut($srcFile, $destFile, $destWidth = NULL, $destHeight = NULL, $fileType = 'jpg', $destX = 0, $destY = 0)
{
    Tools::displayAsDeprecated();
    if (isset($srcFile['tmp_name']))
        return ImageManager::cut($srcFile['tmp_name'], $destFile, $destWidth, $destHeight, $fileType, $destX, $destY);
    return false;
}

/**
 * @deprecated 1.5.0
 */
function createSrcImage($type, $filename)
{
    Tools::displayAsDeprecated();
    return ImageManager::create($type, $filename);
}

/**
 * @deprecated 1.5.0
 */
function createDestImage($width, $height)
{
    Tools::displayAsDeprecated();
    return ImageManager::createWhiteImage($width, $height);
}

/**
 * @deprecated 1.5.0
 */
function returnDestImage($type, $ressource, $filename)
{
    Tools::displayAsDeprecated();
    return ImageManager::write($type, $ressource, $filename);
}

/**
 *  @deprecated 1.5.0
 */
function deleteImage($id_item, $id_image = NULL)
{
    Tools::displayAsDeprecated();

    // Category
    if (!$id_image)
    {
        $path = _PS_CAT_IMG_DIR_;
        $table = 'category';
    if (file_exists(_PS_TMP_IMG_DIR_.$table.'_'.$id_item.'.jpg'))
        unlink(_PS_TMP_IMG_DIR_.$table.'_'.$id_item.'.jpg');
        if (!$id_image AND file_exists($path.$id_item.'.jpg'))
        unlink($path.$id_item.'.jpg');

    /* Auto-generated images */
    $imagesTypes = ImageType::getImagesTypes();
    foreach ($imagesTypes as $k => $imagesType)
            if (file_exists($path.$id_item.'-'.$imagesType['name'].'.jpg'))
            unlink($path.$id_item.'-'.$imagesType['name'].'.jpg');
    }else // Product
    {
        $path = _PS_PROD_IMG_DIR_;
        $table = 'product';
        $image = new Image($id_image);
        $image->id_product = $id_item;

        if (file_exists($path.$image->getExistingImgPath().'.jpg'))
            unlink($path.$image->getExistingImgPath().'.jpg');

        /* Auto-generated images */
        $imagesTypes = ImageType::getImagesTypes();
        foreach ($imagesTypes as $k => $imagesType)
            if (file_exists($path.$image->getExistingImgPath().'-'.$imagesType['name'].'.jpg'))
                unlink($path.$image->getExistingImgPath().'-'.$imagesType['name'].'.jpg');
    }

    /* BO "mini" image */
    if (file_exists(_PS_TMP_IMG_DIR_.$table.'_mini_'.$id_item.'.jpg'))
        unlink(_PS_TMP_IMG_DIR_.$table.'_mini_'.$id_item.'.jpg');
    return true;
}
 

du coup je comprend pas du tout qu'est ce qu'il faut modifier, si quelqu'un aurait une solution.

Merci!

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