problème de chemin de repertoire

Eléphant du PHP | 294 Messages

07 sept. 2006, 00:03

Bonjour
je travaille sur un script qui produit une vignette à partir d'une image telechargée precedement dans un formulaire.
A un moment je doit recuperer le nom de l'image telechargée dans le dossier :
$chemin="imgs_bd/galerie_photo/";
//nom du fichier
$fichierSource = $_FILES['photo']['name'];
puis je lance le script qui fera la vignette

    $largeurDestination = 110;
    $hauteurDestination = 110;
    $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination) 
            or die ("Erreur lors de la création de l'image"); 

    $source = ImageCreateFromJpeg($fichierSource);

etc etc.
mon probleme: $fichierSource est bien le nom de l'image mais elle est dans un repertoire à ce stade du script(imgs_bd/galerie_photo/) je n'arrive pas integrer ce chemin dans mon script. si $fichierSource contient le chemin ça ne marche plus.
merci

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 sept. 2006, 01:05

si $fichierSource contient le chemin ça ne marche plus.
Qu'est ce qui te fait dire que ça ne marche pas ?

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 294 Messages

07 sept. 2006, 09:28

ben j'ai des messages d'erreur quand j'ajoute le chemin, pas lorsque le fichier est à la racine, voici le script :
			
// je recupere le nom du fichieret son chemin de stockage ( il vient 
// d'etre déposé a l'aide d'un script d'upload)
$fichierSource = "imgs_bd/galerie_photo/".$_FILES['photo']['name'];
    
    $largeurDestination = 110;
    $hauteurDestination = 110;
    $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination) 
            or die ("Erreur lors de la création de l'image"); 

    $source = ImageCreateFromJpeg($fichierSource);
    
    $largeurSource = imagesx($source);
    $hauteurSource = imagesy($source); 


$Difflargeur = $largeurSource-110;
	
ImageCopyResampled($im, $source, 0,0,0,$Difflargeur/3, $largeurDestination, $hauteurDestination, $largeurSource, $hauteurSource-($Difflargeur/2));
j'ai les messages d'erreur :

Warning: imagejpeg(): Unable to open 'mini_imgs_bd/galerie_photo/ADA_ 1581_5_3.jpg' for writing in c:\program files\easyphp1-8\www\bali\galerie_photo_ajout.php on line 74
Image miniature générée: mini_imgs_bd/galerie_photo/ADA_ 1581_5_3.jpg

Mon script fabrique une image vide dans laquelle est copiée/resamplée l'image initiale, c'est le chemin d'acces à cette image( "mini...") qui est mauvais avec la ligne
$source = ImageCreateFromJpeg($fichierSource);
qui considere le chemin d'acces/nom comme le nom. En fait le fichier "mini..." est stocké a la racine et pas dans le dossier "imgs_bd/galerie_photo"

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

07 sept. 2006, 15:09

Le répertoire mini_imgs_bd existe ?
et le chemin mini_imgs_bd/galerie_photo/ aussi ?

Le warning est sur imagejpeg() :-k

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 294 Messages

07 sept. 2006, 15:41

non, ces chemins de repertoire n'existent pas en fait la vignette est crée avec le prefixe mini_ et placée à la racine du site, mais comme le script considere le chemin du fichier original comme le nom de l'image à reduire, il prend le chemin et lui colle mini_ devant, ce nom de fichier étant non conforme (mini_imgs_bd/galerie_photo/XXX ), la vignette n'est même pas crée