[RESOLUE]Erreur 404 avec un script php de miniature d'image

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

chili palmer
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 121
Inscription: Ven Déc 16, 2005 19:07

[RESOLUE]Erreur 404 avec un script php de miniature d'image

Message le Lun Avr 10, 2006 16:09

Bonjour,

j'ai récupéré un script qui génère une miniature, mais au moment de la Downloader, je recupere une erreur 404 !
Pouvez-vous m'aider à résoudre ce problème.

Code: Tout sélectionner
// GESTION DU TÉLÉCHARGEMENT

if(!empty($_GET["dwn"])) {
   if(!strpos(" ".$_GET["dwn"],"..")) { // protection ;)
      header("content-type: application/octet-stream");
      $f = substr($_GET["dwn"],strrpos($_GET["dwn"],"/")+1);
      header("Content-Disposition: attachment; filename=".$f);
      flush(); // Envoie le buffer
      readfile($_GET["dwn"]);   
   }

// CREATION DE LA VIGNETTE

} else {

function redimage($img_src,$img_dest,$dst_w,$dst_h) {
   // Lit les dimensions de l'image
   $size = GetImageSize($img_src); 
   $src_w = $size[0]; $src_h = $size[1]; 
   // Teste les dimensions tenant dans la zone
   $test_h = round(($dst_w / $src_w) * $src_h);
   $test_w = round(($dst_h / $src_h) * $src_w);
   // Si Height final non précisé (0)
   if(!$dst_h) $dst_h = $test_h;
   // Sinon si Width final non précisé (0)
   elseif(!$dst_w) $dst_w = $test_w;
   // Sinon teste quel redimensionnement tient dans la zone
   elseif($test_h>$dst_h) $dst_w = $test_w;
   else $dst_h = $test_h;

   // La vignette existe ?
   $test = (file_exists($img_dest));
   // L'original a été modifié ?
   if($test)
      $test = (filemtime($img_dest)>filemtime($img_src));
   // Les dimensions de la vignette sont correctes ?
   if($test) {
      $size2 = GetImageSize($img_dest);
      $test = ($size2[0]==$dst_w);
      $test = ($size2[1]==$dst_h);
   }

   // Créer la vignette ?
   if(!$test) {
      // Crée une image vierge aux bonnes dimensions
      // $dst_im = ImageCreate($dst_w,$dst_h);
      $dst_im = ImageCreateTrueColor($dst_w,$dst_h);
      // Copie dedans l'image initiale redimensionnée
      $src_im = ImageCreateFromJpeg($img_src);
      // ImageCopyResized($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
      ImageCopyResampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);
      // Sauve la nouvelle image
      ImageJpeg($dst_im,$img_dest);
      // Détruis les tampons
      ImageDestroy($dst_im); 
      ImageDestroy($src_im);
   }

   // Affiche le descritif de la vignette
   echo "SRC='".$img_dest."?t=".time()."' WIDTH=".$dst_w." HEIGHT=".$dst_h;
}

// AFFICHAGE DE LA PAGE

?><HTML><HEAD><TITLE>Générateur de vignettes</TITLE>
   <STYLE>
      td,input { font:normal 8pt Verdana }
   </STYLE>
</HEAD><BODY bgcolor=#FFFFFF>

   <center><table width=100% height=100%><tr>
      <td align=center>

         <font size=4>Désignez une image .JPG</font> <i>(300 Ko max.)<br>

<? // GESTION DE L'UPLOAD

$rep="./"; // Répertoire de stockage (doit avoir les droits d'écriture ! CHMOD)
$f = $rep."original.jpg"; // path du fichier original

if(isset($_FILES['photo'])) {
   if($_FILES['photo']['size']>0) {
      if(strtolower(substr($_FILES['photo']['name'],-4))!=".jpg") { ?>
           <b>Ce n'était pas un .JPG !</b>
      <? } elseif (!move_uploaded_file($_FILES['photo']['tmp_name'], $f)) { ?>
           <b>Erreur d'enregistrement !</b>
      <? }
   } else { ?>
      <b>Trop gros fichier !</b>
   <? }
}?>
         <table><FORM METHOD="POST" ENCTYPE="multipart/form-data">
            <INPUT TYPE=HIDDEN NAME=MAX_FILE_SIZE VALUE=<? echo 300*1024;?>>
            <tr><td align=center><INPUT TYPE=FILE NAME="photo"></td></tr>
            <tr><td align=center><INPUT TYPE=SUBMIT value="Générer la vignette"></td></tr>
         </FORM></table>

<? // AFFICHAGE DE LA VIGNETTE ET DES INFOS

$f2 = $rep."vignette.jpg"; // path de la vignette
$largeur=150; if(!empty($_GET["largeur"])) $largeur = $_GET["largeur"];
$hauteur=150; if(!empty($_GET["hauteur"])) $hauteur = $_GET["hauteur"];

   if(file_exists($f)) { ?>

         <table border=0 cellspacing=5 cellpadding=0><tr>
            <td>
               <center><b>Original</b></center><br>
               Poids : <?echo round(filesize($f)/1024)?> Ko<br>
               Taille : <?
                  $size = GetImageSize($f);
                  echo $size[0]."x".$size[1]; ?><br>
               <br><center>
                  <A href="vignette.php?dwn=<?echo $f?>">Télécharger</A>
               </center>
            </td><td align=center>
               <IMG <? redimage($f,$f2,$largeur,$hauteur)?>>
            </td><td>
               <center><b>Vignette</b></center><br>
               Poids : <?echo round(filesize($f2)/1024)?> Ko<br>
               Taille : <?
                  $size = GetImageSize($f2);
                  echo $size[0]."x".$size[1]; ?><br>
               <br><center>
                  <A href="vignette.php?dwn=<?echo $f2?>">Télécharger</A>
               </center>
            </td>
         </tr><tr>

<? // CHOIX DES DIMENSIONS DE LA VIGNETTE
?>
            <form><td colspan=3 align=center>
               <table><tr>
                  <td>Largeur :</td>
                  <td><select name="largeur">
                     <?for($i=10;$i<=150;$i+=10) {
                        echo "<option";
                        if($i==$largeur) echo " SELECTED";
                        echo ">".$i."</option>\n";
                     } ?>
                  </select></td>
                  <td>Hauteur :</td>
                  <td><select name="hauteur">
                     <?for($i=10;$i<=150;$i+=10) {
                        echo "<option";
                        if($i==$hauteur) echo " SELECTED";
                        echo ">".$i."</option>\n";
                     } ?>
                  </select></td>
                  <td><input type=submit value=Modifier></td>
            </td></form>
         </tr></table>

   <? } ?>

      </td>
   </tr></table></center>

</BODY></HTML><?

} ?>


ht*p://www.asp-php.net/scripts/asp-php/vignette.php?page=4 voici un exemple de ce que cela donne

merci d'avance

PS: si par hasard vous avez un script qui créé des miniature d'un dossier entier: ça m'interresse aussi !!
Dernière édition par chili palmer le Mar Avr 11, 2006 17:39, édité 1 fois.


dd32
Modérateur
Modérateur
 
Messages: 3261
Inscription: Ven Sep 09, 2005 10:21

Message le Lun Avr 10, 2006 21:30

Bonsoir,
Peux-tu donner plus d'infos sur l'hébergeur de ton script ?
Est-ce que tu downloades vers le bon répertoire ?

chili palmer
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 121
Inscription: Ven Déc 16, 2005 19:07

Message le Mar Avr 11, 2006 17:11

dd32 a écrit:Est-ce que tu downloades vers le bon répertoire ?

le probleme était exactement ça !!

merci :wink:


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :

Consultez la description détaillée des produits ou services de Google suivants : Google Image Labeler, Google Video

  • Analyseur d'entête HTTP
    Cet outil vous permet de connaître le code HTTP renvoyé par le serveur pour une page donnée.


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités