Bonjour à tous,

Voilà je m'explique j'ai fait un petit système d'upload d'image pour un e commerce, pour le moment il est possible d'upload qu'une seule image par produit ce qui est en soit assez problématique. Si j'upload une image cela supprime l'ancienne et enregistre la nouvelle.
Je voudrais donc pouvoir enregistrer plus images pour un même produit, ça pas de soucis je pense que c'est assez simple au lieu d'upload par dessus l'ancienne j'incrémente une variable que je rajoute au nom du fichier et ainsi l'image ne sera pas écrasée.

Cependant j'aimerai savoir comment faire pour limiter le nombre d'image uploadable possible et aussi comment modifier une image en particulier ? Je ne vois pas tellement comme faire cela ce qui est assez problématique, je connais le système de leboncoin qui lui est assez pratique mais n'est aucune idée de comment cela est gérer. Quelqu'un aurait-il une quelconque piste ou aide à m'apporter ?

Aussi une autre question tant que j'y suis, les images ne seront pas tous forcément au même, étant donné que c'est un e commerce pour la vente en détail de vêtements. Il y a donc des photos qui sont en mode portrait et d'autres en paysage, je fais un redimensionnement à la volée des photos mais le problème c'est que je ne peux prévoir si l'image est en mode portrait ou paysage et dans ce cas là l'image est étiré. Je me demandais si dans mon script de redimensionnement mettre une condition qui dit que si la hauteur est plus grande que la largeur alors j'inverse le format demandé.
Par exemple une image en mode portrait est uploadé mais le format de la vignette est 400*200 au lieu d'avoir une largeur plus grande j'intervertis les deux ?

Ou sinon si la hauteur est plus grande que la largeur je garde le ratio de l'image je redimensionne et rajouter du blanc/transparent sur les côtés est-ce possible ? Je me suis dis qu'en créant une image blanche de départ avec imagetruecolor ça devrait le faire mais j'en suis pas certains.

Edit: Pour la gestion du portrait paysage j'ai réussi, j'avais copier coller les fichiers sans le vouloir dans un autre dossier que le dossier image et je faisais modification sur ces copies ce qui avait un effet nul sur les images.
Cependant une question me taraude je dois recharger la page pour que l'image soit crée d'où vient le problème selon vous ?

Edit2:
J'ai corrigé le soucis ^^ Je n'attends plus que de l'aide pour l'upload de plusieurs images s'il vous plaît avec une condition un certains nombre d'images (en l'occurrence maximum 4) et pouvoir les changer par la suite.
Voilà ma function de redimensionnement:

<?php 
extract($_GET);
$thumbs = $dir.'thumbs';
if(!file_exists($thumbs)){
    mkdir($thumbs,0777);
}
$format = explode('x',$format);
if(redim($dir.$name.'.jpg',$dest,$format[0],$format[1])){
echo file_get_contents($dest);
exit();
}
function redim($img, $to, $width, $height){

    $dimensions = getimagesize($img);
        if($dimensions[0] < $dimensions[1]){
        $dimX = $height;
        $dimY = $width;
        $pattern = imagecreatetruecolor($height, $width);
        }else{
        $dimX = $width;
        $dimY = $height;
        $pattern = imagecreatetruecolor($width, $height);}
        header("Content-type: image/jpeg"); //format jpg
         $offset = 3660 * 3660;
   $expire = "expires: " . gmdate ("D, d M Y H:i:s", time() + $offset) . " GMT";
   $last_modified_time = filemtime($img);
   header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT"); 
   header ($expire);
        // Création de l'image avec la librairie GD

        if(substr($img,-4)=='.jpg' || substr($img,-4) =='.JPG'){ $image = imagecreatefromjpeg($img);}
        if(substr($img,-4)=='.png' || substr($img,-4) =='.PNG'){ $image = imagecreatefrompng($img);}    
        if(substr($img,-4)=='.gif' || substr($img,-4) =='.GIF'){ $image = imagecreatefromgif($img);}        
        imagecopyresampled($pattern, $image, 0, 0, 0, 0, $dimX, $dimY, $dimensions[0], $dimensions[1]);
        imagejpeg($pattern, $to, 60);
        imagedestroy($image);

        return true;

}
?>

1 réponse


Xtr3me
Auteur

Bon j'ai trouvé un script en Ajax/PHP/Jquery qui devrait me permettre d'uploader plusieurs images comme je le souhaite je vais voir ça de plus prés et vous ferais un petit retour.