Tom's Guide > Forum > Programmation > prb php: creer thumb

prb php: creer thumb

Forum Programmation : prb php: creer thumb

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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 à:

Code :
  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 http://adeltimple.free.fr/upload/'.$name_file.'</br>';
  29.     }
  30. $file_source= '"upload/".$name_filethumb';
  31. $image_save= '"thumb/".$name_filethumb';
  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. ?>





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!!!

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Le $name_filethumb il sort d'ou ?

Répondre à Anonyme

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)


Message édité par adeltimple le 21-02-2008 à 17:30:40
Répondre à adeltimple

reposte le code corrigé ça aidera

Répondre à Anonyme

désolé pour le délais..
voila mon code:

Code :
  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 http://adeltimple.free.fr/upload/'.$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. ?>



merci :)

Répondre à adeltimple

up please!! :)
je n'arrive pas à trouver l'erreur, donc je suis bloquer ds mon devellopement web :(

Répondre à adeltimple

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

Répondre à Anonyme

bon merci, j'arrivais même pas à refaire marcher comme avant...
par contre j'ai trouvé ça:
http://www.toocharger.com/telechar [...] e/3086.htm mais je voudrais bien une confirmation: es-ce que ça va réduire les images avant de les envoyer par le net au visiteur??

merci bcp pour ton aide -Cart-!!!

Répondre à adeltimple

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

Répondre à Anonyme

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 :)

Répondre à adeltimple

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:!!

Code :
  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 http://adeltimple.free.fr/upload/'.$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. ?>


Message édité par tribulon69 le 27-02-2008 à 15:35:44
Répondre à tribulon69

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??

Répondre à adeltimple

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:

Code :
  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??

Répondre à adeltimple
Tom's Guide > Forum > Programmation > prb php: creer thumb
Aller à :

Il y a 2245 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens