[resolu] resize d"une image après un upload....

resize d"une image après un upload.... [resolu] - PHP - Programmation

Marsh Posté le 18-01-2005 à 15:36:58    

bonjour;
 
voici mon "petit" problème.
J'ai un script qui me permet d'uploader une image sur mon serveur.  
Cette image doit être stocké dans un repertoire : racinedusite/imguser/
 
Jusque la, tout va bien.  
La ou cela se complique, c'est que je souaite retaillé l'image uploader avant de la stocker. (pour en faire une miniature)  
L'uplaod se passe bien, mais aucun resize.  
Je vous joint le script (qui ne comporte pas la fonction de resize)
 

Code :
  1. //verification du type de fichier, utilise une classe externe
  2. $get_mime = new mime_magic();
  3. $mime = $get_mime->analyze_file($_FILES['mini']['tmp_name']);
  4. switch($mime){
  5. case "image/jpeg":
  6.  $extension = ".jpg";
  7.  break;
  8. case "image/gif":
  9.  $extension = ".gif";
  10.  break;
  11. default:
  12.  $extension = "";
  13. }
  14. //définis le nom du fichier une fois uploader sur le serveur
  15. $mini='mini-'.$session.$name.$extension;
  16. //défintion des variables pour le renvoi d'informations une fois le script éxécuté
  17. $taille = $_FILES['mini']['size'];
  18. $tmp= $_FILES['mini']['tmp_name'];
  19. $type= $_FILES['mini']['type'];
  20. $erreur= $_FILES['mini']['error'];
  21. //Affichage du résultat du script
  22. echo '<pre>';
  23. if (move_uploaded_file($tmp, $uploaddir . $mini)) {
  24.     echo "Le fichier est valide, et a été téléchargé avec succès.";
  25. } else {
  26.     echo "Attaque par upload potentielle.";
  27. }
  28. echo '</pre>';
  29. echo  "Taille => $taille <br />";
  30. echo  "Type de fichier => $type <br />";
  31. echo  "Code erreur => $erreur. <br />";
  32. echo  "Nouveau nom => $mini<br />";
  33. if ($err = $_FILES['mini']['error']) {
  34.       echo "il y a eu une erreur <br>" ;
  35.   if ($err == UPLOAD_ERR_INI_SIZE)
  36.     echo "Le fichier est plus gros que le max autorisé par PHP";
  37.   elseif ($err == UPLOAD_ERR_FORM_SIZE)
  38.     echo "Le fichier est plus gros qu'indiqué dans le formulaire";
  39.   elseif ($err == UPLOAD_ERR_PARTIAL)
  40.     echo "Le fichier n'a été que partiellement téléchargé";
  41.   elseif ($err == UPLOAD_ERR_NO_FILE)
  42.     echo "Aucun fichier n'a été téléchargé.";
  43. } else echo "fichier correctement téléchargé <br><br>" ;


 
Pour ma part, je débute en php depuis peu.... merci de votre aide.


Message édité par melangeur le 19-01-2005 à 11:41:31
Reply

Marsh Posté le 18-01-2005 à 15:36:58   

Reply

Marsh Posté le 18-01-2005 à 15:41:03    

pourquoi tu veux le retailler avant de le stocker puisqu'il est deja sur le serveur apres l'upload.
Tu upload
Tu copie ce fichier
Tu retaille le fichier copier
Si ça marche
Tu supprimer le fichier original.

Reply

Marsh Posté le 18-01-2005 à 15:45:49    

ok, pourquoi pas, mais dans ce cas, comment je fais ?  
sachant qu'il faut impérativement que le fichier resizé soit celui qui vient d'être uploadé.
J'ai testé deux ou trois trucs, mais cela ne fonctionne qu'en donnant le nom de la photo et que si celle ci est directemement à la racine du site.  
Hors, les miniatures sont stockées dans un autre repertoire : racine/imguser/

Reply

Marsh Posté le 18-01-2005 à 15:58:21    

melangeur a écrit :

ok, pourquoi pas, mais dans ce cas, comment je fais ?  
sachant qu'il faut impérativement que le fichier resizé soit celui qui vient d'être uploadé.
J'ai testé deux ou trois trucs, mais cela ne fonctionne qu'en donnant le nom de la photo et que si celle ci est directemement à la racine du site.  
Hors, les miniatures sont stockées dans un autre repertoire : racine/imguser/


c'est a toi de donner le chemin de la ou tu a placer le photo uploadé pour la retaillé il faut dire ou ce trouve la photo et ou tu veux le mettre c'est forcement indiqué du moin là ou il y a le nom du fichier genre :
$fichier tu peux faire '/mes_fichier/image/'.$fichier

Reply

Marsh Posté le 18-01-2005 à 16:51:40    

alors...

Code :
  1. $thumb = "../imguser/$mini";
  2. $ratio = 100;
  3. $src=imagecreatefromjpeg($thumb)or die ("erreur sur image create from jpeg" );
  4. $size = getimagesize($thumb)or die ("erreur sur get image size" );
  5. if ($size[0] > $size[1]) {
  6.     $im=imagecreatetruecolor(round(($ratio/$size[1])*$size[0]), $ratio)or die ("erreur sur image create true color" );
  7.     imagecopyresampled($im, $src, 0, 0, 0, 0, round(($ratio/$size[1])*$size[0]),$ratio, $size[0], $size[1])or die ("erreur sur image copy resampled" );
  8. }
  9. else {
  10.     $im=imagecreate($ratio, round(($ratio/$size[0])*$size[1]))or die ("erreur sur image create" );
  11.     imagecopyresampled($im, $src, 0, 0, 0, 0, $ratio, round($size[1]*($ratio/$size[0])), $size[0], $size[1]);
  12. }
  13. $miniature = "thumb$thumb";
  14. imagejpeg ($im, $miniature) or die ("erreur sur image jpeg" ); 
  15. echo "Image miniature générée: $miniature <br>";


 
bein ca coince....j'ai une erreur sur la ligne:
 imagejpeg ($im, $miniature) or die ("erreur sur image jpeg" );  
 
voila ou j'en suis....

Reply

Marsh Posté le 18-01-2005 à 17:00:22    

c'est ok...  
pb résolu :)


Message édité par melangeur le 18-01-2005 à 17:06:15
Reply

Sujets relatifs:

Leave a Replay

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