imagejpeg(): Unable to open

Petit nouveau ! | 6 Messages

27 janv. 2007, 19:50

Salut tout le monde,

Je sollicite votre aide parce que là je ne comprend absolument pas.
J'ai fais un upload d'image avec un resize et une creation de repertoire ...
Mais le problème arrive au moment de l'utilisation de la fonction imagejpeg().
Alors avant de poser une question, j'ai pas mal fouillé sur le net pour savoir si ce problème était connu. Et apparement oui c'est une histoire de droit...
Alors les droits sur mes repertoires sont tous à 777.
Je vous mets le code en esperant que vous pourrez y faire quelque chose.

Fichier photos.php

Code : Tout sélectionner

if(isset($_POST['ajouter'])) { if($_POST['repertoire']!='Créer ...') { $repertoire=$_POST['repertoire']; } else { $repertoire=$_POST['repertoire_exist']; } $repertoire=str_replace(" ","_",$repertoire); $content_dir="images/upload/".$repertoire."/"; $content_dir_mini="images/upload/".$repertoire."_mini/"; $tmp_file = $_FILES['fichier']['tmp_name']; if($_POST['repertoire']!='Créer ...') { mkdir($content_dir); mkdir($content_dir_mini); chmod($content_dir, 0777); chmod($content_dir_mini, 0777); } if(!is_uploaded_file($tmp_file) ) { exit("Le fichier est introuvable"); } $fichier=$_FILES['fichier']['name']; $tab=explode(".",$fichier); $pos=sizeof($tab)-1; $nom=str_replace(" ","_",$_POST['nom']); $name_file = $nom.'.'.$tab[$pos]; if(!move_uploaded_file($tmp_file, $content_dir . $name_file) ) { exit("Impossible de copier le fichier dans $content_dir"); } else { $sql="insert into photos (nom, fichier, repertoire) values ('$_POST[nom]', '$name_file', '$repertoire')"; mysql_query($sql); chmod($content_dir . $name_file,0777); generer_miniature($name_file, 150, 40, $content_dir, $content_dir_mini); chmod($content_dir_mini . $name_file,0666); } }
Maintenant la fonction generer_miniature (qui devrait s'appeler generer-erreur lol )

Code : Tout sélectionner

function generer_miniature($image, $largeur, $hauteur, $source, $dest) { $dest = $dest; $dossier = $source."/"; $img_in = ImageCreateFromJpeg($dossier.$image); $size = getimagesize($dossier.$image); $l = $size[0]; $h = $size[1]; if (($l >= $largeur) && ($h>= $hauteur)) { $new_haut = ($h * $largeur) / $l; if($new_haut < $hauteur) { $new_haut = $hauteur; $new_larg = ($l * $hauteur) / $h; } else { $new_larg = $largeur; } $img_out = ImageCreate($new_larg, $new_haut); ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h); $im = ImageCreate($largeur, $hauteur); ImageCopy($im, $img_out, 0, 0, 0, 0, $largeur, $hauteur); ERREUR ===> ImageJpeg($im, $dest, 90); ImageDestroy($img_out); ImageDestroy($im); } elseif (($l < $largeur) && ($h >= $hauteur)) { $img_out = ImageCreate($l, $h); ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h); $im = ImageCreate($l, $hauteur); ImageCopy($im, $img_out, 0, 0, 0, 0, $l, $hauteur); ImageJpeg($im, $dest, 90); ImageDestroy($img_out); ImageDestroy($im); } elseif ($l >= $largeur && $h < $hauteur) { $img_out = ImageCreate($l, $h); ImageCopyResized($img_out, $img_in, 0, 0, 0, 0, ImagesX($img_out), ImagesY($img_out), $l, $h); $im = ImageCreate($largeur , $h); ImageCopy($im, $img_out, 0, 0, 0, 0, $largeur, $hauteur); ImageJpeg($im, $dest, 100); ImageDestroy($img_out); ImageDestroy($im); } elseif ($l < $largeur && $h< $hauteur) { ImageJpeg($img_in, $dest, 90); } ImageDestroy($img_in); }
D'avance je vous remercie d'y avoir jeté un coup d'oeil.
Je sais que ce n'est pas evident de rentrer dans la prog de quelqu'un d'autre.
La fonction a été trouvé sur le net. :D

Damien

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 janv. 2007, 20:04

Bonsoir,

Quel est le message d'erreur exact?
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 6 Messages

27 janv. 2007, 20:08

Warning: imagejpeg() [function.imagejpeg]: Unable to open 'images/upload/df_mini/' for writing