probleme d'affichage d'image en php

probleme d'affichage d'image en php - PHP - Programmation

Marsh Posté le 17-07-2008 à 18:48:54    

bonjour
 
mon probleme est le suivant je veux afficher toutes les images d'un dossier
jai d'abord un script qui crée les miniatures des images du dossier et qui les place dans un nouveau dossier:
 
<?php  
 
//Les répertoires
$rep_imgs = "./luc";
$rep_mini = "./miniluc";
 
//Les dimensions max des miniatures
$width_mini = 300;
$height_mini = 300;
 
//La variable renvoyer à flash
$retour="<racine>";  
 
//On ouvre le dossier
$rep=opendir($rep_imgs);
 
//On parcours tous les fichiers  
while ($file = readdir($rep)){  
 
 //Si c'est un jpg
 if(substr($file,-3) == "jpg" OR substr($file,-3) =="JPG" ){  
 
  //On copie l'image
       $src_img = imagecreatefromjpeg("$rep_imgs/$file" );
 
  //Si la miniature n'existe pas
  if(!file_exists("$rep_mini/$file" )){
 
   //On cherhe la plus grande dimension
   if(imagesx($src_img) > imagesy($src_img)){
    //On calcul la proportion
    $proportion = $width_mini/imagesx($src_img);
 
    //Nouvelles dimensions
    $new_w = $width_mini;
    $new_h = imagesy($src_img)*$proportion;
   }else{
    //On calcul la proportion
    $proportion = $height_mini/imagesy($src_img);
 
    //Nouvelles dimensions
    $new_h = $height_mini;
    $new_w = imagesx($src_img)*$proportion;
   }
 
   //On crée la nouvelle image
   $dst_img = imagecreatetruecolor($new_w,$new_h);
   imagecopyresized($dst_img,$src_img,0,0,0,0,$new_w,$new_h,imagesx($src_img),imagesy($src_img));
 
   //On l'enregistre
   imagejpeg($dst_img,"$rep_mini/$file" );
  }
 
  //On rajoute un noeud xml avec le nom de l'image et ses dimensions
  $retour .= "<img name='$file' width='".imagesx($src_img)."' height='".imagesy($src_img)."' />";  
 }  
}
 
//On ferme le premier noeud
$retour .= "</racine>";  
 
//On ferme le dossier
closedir($rep);
 
 
?>
 
 
 
 
 
 
 
puis j'affiche les images du dossier miniatures avec le script suivant:
 
 
 
 
 
 
 
<?php
// url du fichier qui contient les images  
$urlphoto = "http://xxxxxxxxxxxxxx.fr/miniluc";  
 
// nom du répertoire qui contient les images  
$nomRepertoire = "miniluc";  
if (is_dir($nomRepertoire))
   {
   $dossier = opendir($nomRepertoire);
   while ($Fichier = readdir($dossier))  
       {  
      if ($Fichier != "." AND $Fichier != ".." AND (stristr($Fichier,'.gif') OR stristr($Fichier,'.jpg') OR stristr($Fichier,'.png') OR stristr($Fichier,'.bmp') OR stristr($Fichier,'.JPG')))  
        {  
        // Hauteur de toutes les images  
        $h_vign = "120";  
        $taille = getimagesize($nomRepertoire."/".$Fichier);  
        $reduc  = floor(($h_vign*100)/($taille[1]));  
        $l_vign = floor(($taille[0]*$reduc)/100);  
       
          echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';
          echo '<img src="', $urlphoto, '/',$Fichier, '" ';  
          echo "width='$l_vign' height='$h_vign'>";  
          echo "</a>&nbsp;";  
          }
        }    
   closedir($dossier);  
   }else{
   echo' Le répertoire spécifié n\'existe pas';
   }
?>  
 
 
probleme: lorsque le visiteur arrive sur la page et qu'il clique sur une image est s'affiche donc avec la qualité miniature...COMMENT DOIS-JE MODIFIER LE SCRIPT POUR QUE LORSQUE L' UTILISATEUR CLIQUE SUR UNE IMAGE CELA AFFICHE L'IMAGE DU PREMIER DOSSIER ??
 
merci d'avance
 

Reply

Marsh Posté le 17-07-2008 à 18:48:54   

Reply

Marsh Posté le 18-07-2008 à 00:12:38    

Regarde ton $urlphoto dans ton deuxième script et les répertoires contenant les images dans le premier. Y a rien qui te vient à l'esprit ?

Reply

Marsh Posté le 18-07-2008 à 12:40:53    

étant grand novice dans ce domaine, je réponderai que non. rien ne me veint a l'esprit..

Reply

Marsh Posté le 18-07-2008 à 14:12:57    

$urlphoto = "http://xxxxxxxxxxxxxx.fr/miniluc";  
 
et
 
echo '<a target="_blank" href="', $urlphoto, '/',$Fichier, '">';  
 
=> c'est comme si tu avais
 
echo "<a target='_blank' href='http://xxxxxxxxxxxxxx.fr/miniluc/".$Fichier."'>";
 
le lien pointe donc vers le répertoire contenant les miniatures.
 
il te suffit donc d'ajouter un $urlphotogrand = "http://xxxxxxxxxxxxxx.fr/luc";
 
et plus loin...
 
echo "<a target='_blank' href='".$urlphotogrand."/".$Fichier."'>";
 
 

Reply

Marsh Posté le 18-07-2008 à 14:32:14    

merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed