Page 1 sur 1

imagejpeg(): Unable to open

Posté : 27 janv. 2007, 19:50
par damsdu77
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

Posté : 27 janv. 2007, 20:04
par @rthur
Bonsoir,

Quel est le message d'erreur exact?

Posté : 27 janv. 2007, 20:08
par damsdu77
Warning: imagejpeg() [function.imagejpeg]: Unable to open 'images/upload/df_mini/' for writing