Votre question

prb php: creer thumb

Tags :
  • Programmation
Dernière réponse : dans Programmation
21 Février 2008 16:25:25

bonjour à tous, ça fait déja quelques heures que je galère: je voudrais pouvoir uploader et creer un thumb (pour ensuite enregistrer les chemins et noms des fichiers dans une BD),
je mle suis inspirer de codes trouver sur le web...
j'arrive à:

  1. <?php
  2.  
  3. if( isset($_POST['upload']) ) // si formulaire soumis
  4. {
  5. $content_dir = 'upload/'; // dossier où sera déplacé le fichier
  6.  
  7. $tmp_file = $_FILES['fichier']['tmp_name'];
  8.  
  9. if( !is_uploaded_file($tmp_file) )
  10. {
  11. exit("Le fichier est introuvable");
  12. }
  13.  
  14. // on vérifie maintenant l'extension
  15. $type_file = $_FILES['fichier']['type'];
  16.  
  17. if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
  18. {
  19. exit("Le fichier n'est pas une image");
  20. }
  21.  
  22. // on copie le fichier dans le dossier de destination
  23. $name_file = $_FILES['fichier']['name'];
  24.  
  25. $infos_img = getimagesize($_FILES['fichier']['tmp_name']); // On recupere les dimensions de l'image ...
  26. echo '<fieldset> les dimmensions en pixels sont de'.$infos_img[0].'x'.$infos_img[1].'</fieldset></br>';
  27.  
  28. // pour éviter le prb si 2 fichiers du même nm existent
  29. $timeline = time();
  30. $name_file = $timeline . "-" . $_FILES['fichier']['name'];
  31.  
  32. if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
  33. {
  34. exit("Impossible de copier le fichier dans $content_dir");
  35. }
  36.  
  37. echo "Le fichier a bien été uploadé";
  38. echo 'le lien est <a href="http://adeltimple.free.fr/upload/" rel="nofollow" target="_blank">http://adeltimple.free.fr/upload/</a>'.$name_file.'</br>';
  39. }
  40.  
  41.  
  42. $file_source= '"upload/".$name_filethumb';
  43. $image_save= '"thumb/".$name_filethumb';
  44. $new_width= 20;
  45. $new_height= 20;
  46. function make_thumb($file_source, $image_save, $new_width, $new_height)
  47. {
  48. $file_infos = getimagesize($file_source);
  49. $image_final = imagecreatetruecolor($new_width, $new_height);
  50. $image_source = $file_infos['mime'] == 'image/jpeg' ? imagecreatefromjpeg($file_source) : imagecreatefrompng($file_source);
  51. imagecopyresampled($image_final, $image_source, 0, 0, 0, 0, $new_width, $new_height, $file_infos[0], $file_infos[1]);
  52. # Sauvegarde
  53. $type = ($file_infos['mime'] == 'image/jpeg' || $file_infos['mime'] == 'image/pjpeg') ? imagejpeg($image_final, $image_save) : imagepng($image_final, $image_save);}
  54.  
  55. ?>




quand j'initialise les variables $file_source et $image_save en leurs mettant des noms de fichiers, ça marche, mais pas la..
qui pourrait me donner un petit coup de main??

(apparement ça doit être un prb de logique :fou:  car pas de messages d'erreur :non:  )


merci de m'aider!!!

Autres pages sur : prb php creer thumb

Anonyme
21 Février 2008 16:53:44

Le $name_filethumb il sort d'ou ?
21 Février 2008 17:30:00

salut.
merci pour ta réponse.. cette erreur, je l'ai creer quand j'ai fais mes tests....
bon j'ai tester, mais j'ai toujours rien dans mon dossier thumb... (par contre, comme avant, l'upload de l'image d'origine est bien uploadée)
Contenus similaires
Anonyme
21 Février 2008 18:36:09

reposte le code corrigé ça aidera
22 Février 2008 01:07:31

désolé pour le délais..
voila mon code:
  1. <?php
  2.  
  3. if( isset($_POST['upload']) ) // si formulaire soumis
  4. {
  5. $content_dir = 'upload/'; // dossier où sera déplacé le fichier
  6.  
  7. $tmp_file = $_FILES['fichier']['tmp_name'];
  8.  
  9. if( !is_uploaded_file($tmp_file) )
  10. {
  11. exit("Le fichier est introuvable");
  12. }
  13.  
  14. // on vérifie maintenant l'extension
  15. $type_file = $_FILES['fichier']['type'];
  16.  
  17. if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
  18. {
  19. exit("Le fichier n'est pas une image");
  20. }
  21.  
  22. // on copie le fichier dans le dossier de destination
  23. $name_file = $_FILES['fichier']['name'];
  24.  
  25. $infos_img = getimagesize($_FILES['fichier']['tmp_name']); // On recupere les dimensions de l'image ...
  26. echo '<fieldset> les dimmensions en pixels sont de'.$infos_img[0].'x'.$infos_img[1].'</fieldset></br>';
  27.  
  28. // pour éviter le prb si 2 fichiers du même nm existent
  29. $timeline = time();
  30. $name_file = $timeline . "-" . $_FILES['fichier']['name'];
  31.  
  32. if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
  33. {
  34. exit("Impossible de copier le fichier dans $content_dir");
  35. }
  36.  
  37. echo "Le fichier a bien été uploadé";
  38. echo 'le lien est <a href="http://adeltimple.free.fr/upload/" rel="nofollow" target="_blank">http://adeltimple.free.fr/upload/</a>'.$name_file.'</br>';
  39. }
  40.  
  41.  
  42. $file_source= '"upload/".$name_file';
  43. $image_save= '"thumb/".$name_file';
  44. $new_width= 20;
  45. $new_height= 20;
  46. function make_thumb($file_source, $image_save, $new_width, $new_height)
  47. {
  48. $file_infos = getimagesize($file_source);
  49. $image_final = imagecreatetruecolor($new_width, $new_height);
  50. $image_source = $file_infos['mime'] == 'image/jpeg' ? imagecreatefromjpeg($file_source) : imagecreatefrompng($file_source);
  51. imagecopyresampled($image_final, $image_source, 0, 0, 0, 0, $new_width, $new_height, $file_infos[0], $file_infos[1]);
  52. # Sauvegarde
  53. $type = ($file_infos['mime'] == 'image/jpeg' || $file_infos['mime'] == 'image/pjpeg') ? imagejpeg($image_final, $image_save) : imagepng($image_final, $image_save);}
  54.  
  55. ?>


merci :) 
22 Février 2008 11:14:09

up please!! :) 
je n'arrive pas à trouver l'erreur, donc je suis bloquer ds mon devellopement web :( 
Anonyme
22 Février 2008 14:22:47

Salut, tu dis que en mettant $file_source et $image_save avec des noms de fichiers, ça marche
alors à ta place, je mettrais des echos de ces variables a plusieurs endroits du code pour repérer où ca bug
Anonyme
22 Février 2008 15:41:21

Citation :
es-ce que ça va réduire les images avant de les envoyer par le net au visiteur??

pour le savoir, il suffit d'ouvrir ta page en question avec l'image, clique droit dessus, propriété et tu regardes la taille, tu sauras facilement si c'est miniature qui est envoyée ou l'originale
22 Février 2008 15:50:06

oui c'est la mignature qui est envoyé...
je m'inquiétais du temps de chargement de la page si il y a une pagination avec 30 photos. là le temps sera plus court que si je m'étais les images non réduites mais plus long que le temps que j'aurais eu avec le script d'en haut (la réduction se fesait une fois pour toute à l'upload)
merci :) 
27 Février 2008 15:34:18

salut à tous, creer un thumb m'interesse trop...
le lien que tu as donné est pas si bien que ça: chargement ultra lent: quand tu veut par exemple faire une présentation avec 9 images par pages, c'est trés long à venir!!!!!

si quelqu'un trouve l'erreur là dedans ça m'interesserais trop:!!
  1. <?php
  2. if( isset($_POST['upload']) ) // si formulaire soumis
  3. {
  4. $content_dir = 'upload/'; // dossier où sera déplacé le fichier
  5. $tmp_file = $_FILES['fichier']['tmp_name'];
  6. if( !is_uploaded_file($tmp_file) )
  7. {
  8. exit("Le fichier est introuvable" );
  9. }
  10. // on vérifie maintenant l'extension
  11. $type_file = $_FILES['fichier']['type'];
  12. if( !strstr($type_file, 'jpg') && !strstr($type_file, 'jpeg') && !strstr($type_file, 'bmp') && !strstr($type_file, 'gif') )
  13. {
  14. exit("Le fichier n'est pas une image" );
  15. }
  16. // on copie le fichier dans le dossier de destination
  17. $name_file = $_FILES['fichier']['name'];
  18. $infos_img = getimagesize($_FILES['fichier']['tmp_name']); // On recupere les dimensions de l'image ...
  19. echo '<fieldset> les dimmensions en pixels sont de'.$infos_img[0].'x'.$infos_img[1].'</fieldset></br>';
  20. // pour éviter le prb si 2 fichiers du même nm existent
  21. $timeline = time();
  22. $name_file = $timeline . "-" . $_FILES['fichier']['name'];
  23. if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
  24. {
  25. exit("Impossible de copier le fichier dans $content_dir" );
  26. }
  27. echo "Le fichier a bien été uploadé";
  28. echo 'le lien est <a href="http://adeltimple.free.fr/upload/" rel="nofollow" target="_blank">http://adeltimple.free.fr/upload/</a>'.$name_file.'</br>';
  29. }
  30. $file_source= '"upload/".$name_file';
  31. $image_save= '"thumb/".$name_file';
  32. $new_width= 20;
  33. $new_height= 20;
  34. function make_thumb($file_source, $image_save, $new_width, $new_height)
  35. {
  36. $file_infos = getimagesize($file_source);
  37. $image_final = imagecreatetruecolor($new_width, $new_height);
  38. $image_source = $file_infos['mime'] == 'image/jpeg' ? imagecreatefromjpeg($file_source) : imagecreatefrompng($file_source);
  39. imagecopyresampled($image_final, $image_source, 0, 0, 0, 0, $new_width, $new_height, $file_infos[0], $file_infos[1]);
  40. # Sauvegarde
  41. $type = ($file_infos['mime'] == 'image/jpeg' || $file_infos['mime'] == 'image/pjpeg') ? imagejpeg($image_final, $image_save) : imagepng($image_final, $image_save);}
  42. ?>
27 Février 2008 16:50:38

oué le lien n'est pas super, elle s'affiche pas à chaque fois... à mon avis, le temps que que le serveur aille chercher le fichier et face l'action de réduire, le temps de chargement maximal doit être atteind... quelqu'un a une idée??
27 Février 2008 23:12:07

moi ce qui m'intérésserais c'est la seconde partie du code (création thumb)
puisque la première partie marche (je l'ai déja utilisé séparement)

l'erreur est donc dans cette partie:
  1. <?php
  2. $file_source= '"upload/1203358957-majeur.JPG"';
  3. $image_save= '"thumb/1203358957-majeur.JPG"';
  4. $new_width= 20;
  5. $new_height= 20;
  6. function make_thumb($file_source, $image_save, $new_width, $new_height)
  7. {
  8. $file_infos = getimagesize($file_source);
  9. $image_final = imagecreatetruecolor($new_width, $new_height);
  10. $image_source = $file_infos['mime'] == 'image/jpeg' ? imagecreatefromjpeg($file_source) : imagecreatefrompng($file_source);
  11. imagecopyresampled($image_final, $image_source, 0, 0, 0, 0, $new_width, $new_height, $file_infos[0], $file_infos[1]);
  12. # Sauvegarde
  13. $type = ($file_infos['mime'] == 'image/jpeg' || $file_infos['mime'] == 'image/pjpeg') ? imagejpeg($image_final, $image_save) : imagepng($image_final, $image_save);}
  14. ?>

ça ne marche pas même comme dans ce cas si j'initialise le fichier d'origine avec un nom qui existe...
quelqu'un a t-il une idée??
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS