Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
747 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Redimmensionner une Image avant upload ..

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Redimmensionner une Image avant upload ..

n°1079958
jijiz
Posté le 11-05-2005 à 19:04:47  profilanswer
 

Bonjour,
 
Sur mon site, j'ai deux scripts, un qui permet de redimmensionner des images à la volée, et un autre d'upload:
 
Redimmensionner :
 

<?
 
  $filename = "../../".$HTTP_GET_VARS[src_pic];  
  // we store here the dimensions maximum a picture can take
  $size_max = 150;
 // $percent = 0.17;
   
  // Content type
 $ext = substr($HTTP_GET_VARS[src_pic],-3);
 $ext = strtolower($ext);  
if ($ext == "jpg" )
{
  header('Content-type: image/jpeg');
}
if ($ext == "gif" )
{
  header('Content-type: image/gif');
}
 
if ($ext == "png" )
{
  header('Content-type: image/png');
}
 
  // Calcul des nouvelles dimensions
  list($width, $height) = getimagesize($filename);
  // we test if the image is larger than $size_max
  if (($width > $size_max) || ($height > $size_max))
  {
      // The longer between $width and $height will be our limit
      if ($width > $height)
      {
        $percent = $size_max / $width;
      }else
      {
        $percent = $size_max / $height;
      }
     
    }
    else
    {
    $percent = 1;
    }
  $newwidth = $width * $percent;
  $newheight = $height * $percent;
   
  // chargement
  $thumb =imagecreatetruecolor($newwidth, $newheight);
 
if ($ext == "jpg" )
{
  $source = imagecreatefromjpeg($filename);
}
if ($ext == "gif" )
{
  $source = imagecreatefromgif($filename);
}
if ($ext == "png" )
{
  $source = imagecreatefrompng($filename);
}
   
   
  // Redimensionnement
   
  imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
   
  // Affichage
 
if ($ext == "jpg" )
{
  imagejpeg($thumb);
}
if ($ext == "gif" )
{
  imagegif($thumb);
}
if ($ext == "png" )
{
  imagepng($thumb);
}
   
?>


 
 
Upload :
 

<html><head>
<SCRIPT LANGUAGE='javascript'>
 function control()
   {
 
  var test_name = document.add_pic.nm_picture.value
  var test_src = document.add_pic.myFic.value
 
  if (test_name== "" )
  {
   alert ("Type a name for the picture." );
   return false;
  }
   
  if (test_src == "" )
  {
   alert ("Choose an image file to upload." );
   return false;
  }
  return true;
 
 }  
</SCRIPT>
 
</head>
 
<?  
if ( count ($HTTP_POST_VARS) == 0 )
{
?>
 
<?  
// We get all the picture category
    // We display all the image category:
    $request = "select * from gallery_cat";
    $answer = mysql_query($request)
      or die (mysql_error($anwser));
       
       
?>
<center><h1>Add a picture in the Gallery</h1></center>
<table border = 0 align = center>
<tr><td>
<FORM NAME = "add_pic" ACTION = "content/undermenu/gallery/add.php" METHOD = "POST" ENCTYPE = "multipart/form-data" OnSubmit = "return control()">
Name : </td><td><INPUT TYPE = text NAME = "nm_picture" id = "nm_picture"  size = 20 maxlength= 20></td></tr>
<tr><td>Source : </td><td><input type = "file" name = "myFic" id = "myFic" size = 23 </td></tr>
 
<?  
echo "<tr><td>Category :</td><td><select name = cat>";
while ($row = mysql_fetch_array($answer))
{
  echo "<option value = $row[id_cat]>$row[name_cat]";
}  
echo "</select>";
?>
</table><br>
<center><INPUT TYPE = submit VALUE = Ok><INPUT TYPE = reset VALUE = Clear > </center>
 
<?
}else
{?>
 
 
   
  <html>
  <head>
  <META HTTP-EQUIV = "refresh" "content = "3;URL = ../../../index.php?page=gallery">
  </head>
   
  <?
   
  include "../../../../conn.php";
  // errors
  $err = "";
     
  // folder of destination
   $folderDest = "../../../../content/gallery/";
   $nameDest       = $HTTP_POST_FILES["myFic"]["name"];
      $ext = substr($HTTP_POST_FILES["myFic"]["name"],-3);
 
  if (!(file_exists($folderDest.$nameDest)))
  {
    $ext = strtolower($ext);
    // We check the extention of the file
    if (($ext == "jpg" ) || ($ext == "gif" ) || ($ext == "png" ))
    {
    if (is_uploaded_file($HTTP_POST_FILES["myFic"]["tmp_name"]))
    {
     if (rename($HTTP_POST_FILES["myFic"]["tmp_name"],$folderDest.$nameDest))
     {
        $err = "";
     } else
      {
     $err = "folder";
      }
    } else
    {
    $err = "size";
    }
    }else
    {
   echo "<center>Bad type of file</center>";
     $err = "ext";
    }
  }else
  {
    $err = "";
  }
   
   
  // The file is now uploaded, we can add informations in the database
  if ($err == "" )
  {
     $racine = "content/gallery/";
     $picture= $racine.$HTTP_POST_FILES["myFic"]["name"];
     $requete = "INSERT INTO gallery VALUES (LAST_INSERT_ID() ,'".$HTTP_POST_VARS['nm_picture']."','$picture',\"$_POST[cat]\" );";
     $reponse = mysql_query($requete)
   OR DIE (mysql_error());
   
           
      echo "<center>Picture added :<br><br><img src = ../../../../$picture></center>";
      echo "<center><a href=\"javascript:history.back()\">Back to Administration</a>" ;
  }else
  {
      echo "<center>Error : $err";
    }
 
 
 
   
}  
?>


 
 
Je ne vois pas comment faire pour redimmensionner l'image puis de l'uploader
imagecopyresampled($thumb, $source, 0,... quel est le type de "$thumb? puis le donner a manger à mon script d'upload? Comment récupérer le nom du fichier contenu par $thumb.
 
Merci :hello:

mood
Publicité
Posté le 11-05-2005 à 19:04:47  profilanswer
 

n°1079993
Master p
My new cock ring :D
Posté le 11-05-2005 à 19:43:16  profilanswer
 

Ce que tu veux, c'est qu'on t'explique un script que t'as chopé sur le net :D  ??


Message édité par Master p le 11-05-2005 à 19:44:49

---------------
HAHAHA I M USING TEH INTERNET
n°1080009
jijiz
Posté le 11-05-2005 à 19:50:47  profilanswer
 

heu c'est moi qui l'ai fait... ca svoit pas?  [:minusplus]


Message édité par jijiz le 11-05-2005 à 19:50:58
n°1080037
Master p
My new cock ring :D
Posté le 11-05-2005 à 20:11:00  profilanswer
 

Ah bon, ok, si tu le dis  :whistle:  
 
En tout cas, c'est codé comme un porc :D
 
1/ Utiliser la variable $_SERVER['DOCUMENT_ROOT']
2/ Les $HTTP_GET_VARS, c'est has-been :o Maintenant, on utilise les $_GET.
3/ Utiliser le chemin absolu des pages vers lequel on pointe à la place de faire des href="../../../../index.php" (ce qui veut dire que c'est aussi bien voire mieux d'utiliser href="/index.php". Je suppose ici que tu voulais ramener sur la page d'accueil du site.)
 
Quant aux questions que tu poses, tu as les réponses sous tes yeux.


---------------
HAHAHA I M USING TEH INTERNET
n°1080047
Master p
My new cock ring :D
Posté le 11-05-2005 à 20:18:33  profilanswer
 

Je suis de bonne humeur :D
$thumb est une ressource (créée par "$thumb =imagecreatetruecolor($newwidth, $newheight);" ).
Idem pour $source ($source = imagecreatefromjpeg($filename);) sauf que là, cette resource n'est pas vide, elle contient l'image.
 
imagecopyresampled($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);  
=> recopie $source en utilisant la partie contenue entre 0 et $width (pour la largeur) et entre 0 et $height (pour la longueur) et le place dans $thumb, de la partie allant de 0 à $newwidth (pour la largeur) et entre 0 et $newheight (pour la longueur).
 
 [:jagstang] sté tellment simple [:tinostar]


---------------
HAHAHA I M USING TEH INTERNET
n°1080066
jijiz
Posté le 11-05-2005 à 20:35:11  profilanswer
 

Master p a écrit :

Ah bon, ok, si tu le dis  :whistle:  
 
En tout cas, c'est codé comme un porc :D
 
1/ Utiliser la variable $_SERVER['DOCUMENT_ROOT']
2/ Les $HTTP_GET_VARS, c'est has-been :o Maintenant, on utilise les $_GET.
3/ Utiliser le chemin absolu des pages vers lequel on pointe à la place de faire des href="../../../../index.php" (ce qui veut dire que c'est aussi bien voire mieux d'utiliser href="/index.php". Je suppose ici que tu voulais ramener sur la page d'accueil du site.)
 
Quant aux questions que tu poses, tu as les réponses sous tes yeux.


 
 
tite réponse et explications,
 
j'ai utilisé $HTTP_GET_VARS car pour mon projet en iut, apache ne gérait pas le $_get...
Ensuite si j'utilise "/" pour désigner la racine du site, easyphp me renvoie dans 127.0.0.1, et non dans 127.0.0.1/monSite/ comme je le voudrais.  
 
C'est quoi $_SERVER['DOCUMENT_ROOT'] ?
 
Merci pour tes réponses.
Comment je fais pour obtenir le nom de l'image ressource contenu dans $thumb?


Message édité par jijiz le 11-05-2005 à 20:37:13
n°1080077
Master p
My new cock ring :D
Posté le 11-05-2005 à 20:40:30  profilanswer
 

$_SERVER['DOCUMENT_ROOT'] est la racine du serveur, mais dans ton cas (le serveur est mal configuré), ça te mèneras sur le répertoire parent.
Tu peux pas toucher à Apache ? sinon spa pratique :/


---------------
HAHAHA I M USING TEH INTERNET
n°1080266
Hermes le ​Messager
Breton Quiétiste
Posté le 11-05-2005 à 22:23:18  profilanswer
 

Franchement, c'est tellement porc ce code, que ça donne pas envie d'y plonger [:petrus75]


---------------
Expert en expertises
n°1080425
f4brice
ça passe à 0 !
Posté le 12-05-2005 à 00:07:21  profilanswer
 

jijiz a écrit :

Comment je fais pour obtenir le nom de l'image ressource contenu dans $thumb?


Bah, l'est dans $filename !!!
 
 

n°1080543
jijiz
Posté le 12-05-2005 à 09:50:59  profilanswer
 

Hermes le Messager a écrit :

Franchement, c'est tellement porc ce code, que ça donne pas envie d'y plonger [:petrus75]


oui et...?  
 
pour que ta remarque soit plus constructive, peux tu m'aider à améliorer mon code? [:minusplus]

mood
Publicité
Posté le 12-05-2005 à 09:50:59  profilanswer
 

n°1080544
jijiz
Posté le 12-05-2005 à 09:51:31  profilanswer
 

donc au lieu de faire (rename($HTTP_POST_FILES["myFic"]["tmp_name"],$folderDest.$nameDest))
je fais  
(rename($thumb,$folderDest.$nameDest))
 
??
 
merci à vous

n°1080654
jijiz
Posté le 12-05-2005 à 11:38:52  profilanswer
 

up

n°1080721
aspegic500​mg
Posté le 12-05-2005 à 12:33:52  profilanswer
 

Hermes le Messager a écrit :

Franchement, c'est tellement porc ce code, que ça donne pas envie d'y plonger [:petrus75]


 
 
+1 :D
 
edit: tu upload et ensuite seulement tu peux redimenssioner, car l'inverse c'est impossible, si tu veux que ton script redimenssione l'image, il faut que l'image soit sur le serveur, pas sur le pc du client :D


Message édité par aspegic500mg le 12-05-2005 à 12:34:56
n°1080736
jijiz
Posté le 12-05-2005 à 13:00:06  profilanswer
 

aspegic500mg a écrit :

+1 :D
 
edit: tu upload et ensuite seulement tu peux redimenssioner, car l'inverse c'est impossible, si tu veux que ton script redimenssione l'image, il faut que l'image soit sur le serveur, pas sur le pc du client :D


Hmm je pensais qu'on pouvait redimmensionner une image avant de l'uploader. Merci

n°1081123
jijiz
Posté le 12-05-2005 à 16:54:29  profilanswer
 

Nouvelle question, comment parcourrir tout un répertoire contenant des images?

n°1081152
Hermes le ​Messager
Breton Quiétiste
Posté le 12-05-2005 à 17:07:58  profilanswer
 

Heu, faudrait un peu regarder la doc de PHP là quand même hein... :o
 
Tu vas sur php.net, tu télécharges la doc au format .chm en français (pratique pour les recherches) et tu cherches "fichier" ou "dossier" et tu regardes. Tu as non-seulement les fonctions s'y rapportant mais également les exemples de code etc... etc...
 
Un forum comme celui-ci ne remplace pas non plus la doc. :o


---------------
Expert en expertises

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Redimmensionner une Image avant upload ..

 

Sujets relatifs
Redimensionnement d'une image uploader[HTML] Image map ne fonctionne pas
redimensionnement auto d'image dans forumhover : afficher image
[PhpWebGallery] Gestion D'image sur 2 nv de Miniconverssion entier -> string avec "Integer'image"
[JAVA/Résolu] problème de rafraichissement avec une image ...gestin d'un click sur une image
[Dreamweaver] Résolution/Imagetexte qui suit la courbe d'une image en forme de bulle
Plus de sujets relatifs à : Redimmensionner une Image avant upload ..


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR