Upload d'image

sydgie
Invité n'ayant pas de compte PHPfrance

10 juil. 2013, 16:33

Bonjour,

Je suis en train de créer un petit admin pour l'endroit où je travail et j'ai un problème avec l'upload d'image dans mon code. J'ai pourtant réutilisé ce code identique sur un autre site et cela fonctionne à merveille. Je ne comprends vraiment pas ce qui cloche. Les images sont Redimensionnées, mais elles sont toutes noires et même les grosses images non-rediomensionnées affichent en noir dans mon dossier d'image sur mon ftp. Est-ce que vous avez une idée du pourquoi? Mon hébergeur fonctionne avec php 5.4

Voici mon code.

Code : Tout sélectionner

//------------------upload-------------------- $dossier = 'img/gros/'; $fichier = basename($_FILES['fichier']['name']); $taille_maxi = 1000000; $taille = filesize($_FILES['fichier']['tmp_name']); $extensions = array('.png', '.gif', '.jpg', '.jpeg'); $extension = strrchr($_FILES['fichier']['name'], '.'); //Début des vérifications de sécurité... if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau { $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg'; } if($taille>$taille_maxi) { $erreur = 'Le fichier est trop gros...'; } if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload { //On formate le nom du fichier ici... $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier); if(move_uploaded_file($_FILES['fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné... { echo "<h1>Upload effectué avec succès !</h1>"; //renomme l'image avec le nom du fichier et le time. $photo=explode('.',$fichier); $newname=$photo[0].time().'.'.$photo[1]; rename($dossier.$fichier, $dossier.$newname); $name="$newname"; $filename="img/thumbs/$newname"; createthumb($name,$filename,200,200);//-------création du thumnail function createthumb($name,$filename,$new_w,$new_h) { $system=explode(".",$name); if (preg_match("/jpg|jpeg/",$system[1])){$src_img=imagecreatefromjpeg("../".$name);} if (preg_match("/gif/",$system[1])){$src_img=imagecreatefromgif("../".$name);} if (preg_match("/png/",$system[1])){$src_img=imagecreatefrompng("../".$name);} $old_x=imageSX($src_img); $old_y=imageSY($src_img); if ($old_x > $old_y) { $thumb_w=$new_w; $thumb_h=$old_y*($new_h/$old_x); } if ($old_x < $old_y) { $thumb_w=$old_x*($new_w/$old_y); $thumb_h=$new_h; } if ($old_x == $old_y) { $thumb_w=$new_w; $thumb_h=$new_h; } $dst_img=ImageCreateTrueColor($thumb_w,$thumb_h); imagecopyresampled($dst_img,$src_img,0,0,0,0,$thumb_w,$thumb_h,$old_x,$old_y); if (preg_match("/png/",$system[1])) { imagepng($dst_img,$filename); } else { imagejpeg($dst_img,$filename); } imagedestroy($dst_img); imagedestroy($src_img); }
Merci beaucoup!