Upload d'image avec affichage instantané de l'image.

Répondre
yearling
yearling
Déconnecté
Bonjour à tous,

est-ce possible d'uploader une image et de l'afficher dans la même page une fois que l'image a été uploadée.

Merci d'avance

Thierry
Michel_57
Michel_57
Déconnecté
Merci LEPHPFACILE et tous ses membres :)
tu upload comment ton image ? tu le fais via un formulaire html non ? avec un bouton submit. donc le formulaire est envoyé soit :

- à la même page que celle de l'affichage du formulaire, et donc tu affiche ton image fraichement uploadée au rechargement de la page, je ne saisis pas où est le problème.

- à une autre page de traitement, dans ce cas tu peux faire une redirection après le traîtement vers la page du formulaire.

ma réponse semble trop simple, j'ai peut-être mal compris la question, essaie d'être plus clair.
yearling
yearling
Déconnecté
Bonjour Michel,

tout d'abord, merci pour ta réponse à mon message.

Donc, je veux simplement afficher l'image que j'ai uploadée dans la même page.

Voici mon code :

  1.  
  2. <html>
  3. <head>
  4. <title>Upload</title>
  5. </head>
  6.  
  7. <body>
  8.  
  9. <table width="100%" border="0">
  10. <tr>
  11. <td>
  12. <form name="upload" method="post" action="" enctype="multipart/form-data">
  13. <input type="file" name="fichier_upload" id="fichier_upload"><br>
  14. <input type="submit" name="Submit" value="Uploader">
  15. </form>
  16. </td>
  17. </tr>
  18. <tr>
  19. <td>
  20. <?php
  21. if(!empty($_FILES['fichier_upload']['name']))  
  22. {  
  23. // on récupère les infos du fichier à uploader  
  24. $fichier_temp = $_FILES['fichier_upload']['tmp_name'];  
  25. $fichier_nom = $_FILES['fichier_upload']['name'];  
  26.  
  27. // on défini les dimensions et le type du fichier  
  28. list($fichier_larg, $fichier_haut, $fichier_type, $fichier_attr)=getimagesize($fichier_temp);  
  29.  
  30. // infos de contrôle du fichier  
  31. $fichier_poids_max = 500000;  
  32. $fichier_h_max = 2448;  
  33. $fichier_l_max = 3264;  
  34.  
  35. // dossier de destination  
  36. $fichier_dossier = '../Documents/';  
  37.  
  38. // extension du fichier  
  39. $fichier_ext = substr($fichier_nom,strrpos( $fichier_nom, '.')+1);  
  40.  
  41. // on renomme le fichier  
  42. $fichier_date = date("ymdhis");  
  43. $fichier_n_nom = $fichier_date.".".$fichier_ext;  
  44.  
  45. // on vérifie s'il y a bien un fichier à uploader  
  46. if (!empty($fichier_temp) && is_uploaded_file($fichier_temp))  
  47. {  
  48. // on vérifie le poids du fichier  
  49. if (filesize($fichier_temp)<$fichier_poids_max)  
  50. {  
  51. // types de fichiers autorises 1=gif / 2=jpg / 3=png  
  52. if (($fichier_type===1) || ($fichier_type===2) || ($fichier_type===3))  
  53. {  
  54. // on vérifie si l'image n'est pas trop grande  
  55. if (($fichier_larg<=$fichier_l_max) && ($fichier_haut<=$fichier_h_max))  
  56. {  
  57. // si le fichier est ok, on l'upload sur le serveur  
  58. if (move_uploaded_file($fichier_temp, $fichier_dossier.$fichier_n_nom))  
  59. {  
  60. echo "Le fichier a été uploadé avec succès<br />";  
  61. echo '<a href="'.$fichier_dossier.$fichier_n_nom.'"><img src="'.fichier_dossier.$fichier_n_nom.'"></a><br />';  
  62. }  
  63. else  
  64. echo "Le fichier n'a pas pu être uploadé<br />";  
  65. }  
  66. else  
  67. echo "Le fichier est trop grand<br />";  
  68. }  
  69. else  
  70. echo "Le fichier n'a pas le bon format<br />";  
  71. }  
  72. else  
  73. echo "Le fichier est trop lourd<br />";  
  74. }  
  75. else  
  76. echo "Pas de fichier à uploader<br />";  
  77. }  
  78. ?>
  79.    
  80.    </td>
  81. </tr>
  82. </table>
  83. </body>
  84. </html>
  85.  


J'obtiens le message qui me dit que mon image a été uploadée avec succès mais l'image ne s'affiche pas. J'ai mon image avec une croix rouge.

En plus, quand j'essaie de rappeler la page, il me met :

Warning: Page has Expired The page you requested was created using information you submitted in a form. This page is no longer available. As a security precaution, Internet Explorer does not automatically resubmit your information for you.

To resubmit your information and view this Web page, click the Refresh button.

Que puis-je faire pour éviter ce problème.

Merci d'avance

Thierry
moogli
moogli
Déconnecté
Il en faut peu pour être heureux !!!!!
salut,

est ce que echo fichier_dossier.$fichier_n_nom; retourne quelque chose de coéhérent avec ce que tu attend ?

$fichier_dossier = '../Documents/';

je suppose que ce script est dans un répertoire sous la racine (au minimum 1) ?

tu peut avoir le type mime du fichier avec le champ type du table dans $_FILES.

quelque info la

@+
yearling
yearling
Déconnecté
Bonsoir Moogli,

merci également pour ta réponse.

Le répertoire dans lequel je place l'image est un répertoire faisant partie du répertoire racine.

En fait, quand je clique sur l'image dont j'en ai également fait un lien, il m'affiche bien l'image.

J'ai également ajouté le code suivant :

  1. <input type="image" border="0" name="imageField" src="<? print fichier_dossier.$fichier_n_nom; ?>"> 
mais, malheureusement, l'image ne s'affiche toujours pas.

As-tu déjà eu l'occasion de développer une page qui "upload" un fichier et l'affiche dans la même source ?

Merci d'avance pour ton aide

Thierry
moogli
moogli
Déconnecté
Il en faut peu pour être heureux !!!!!

As-tu déjà eu l'occasion de développer une page qui "upload" un fichier et l'affiche dans la même source ?


A tu lu le lien en bas que ma réponse ?
Si oui tu pourra constater que c'est le cas :)

est ce que tu a le bon chemin du fichier dans le src ?

est ce que l'on peut voir se script "en ligne" ?
(je n'est pas de quoi tester ton code sous main ;) )

ps utilise <?php plutot que <? afin de na pas être confronter à un problème sur une version future de php !

@+

@+
Michel_57
Michel_57
Déconnecté
Merci LEPHPFACILE et tous ses membres :)
# echo '<a href="'.$fichier_dossier.$fichier_n_nom.'"><img src="'.fichier_dossier.$fichier_n_nom.'"></a><br />';

il manque un $
yearling
yearling
Déconnecté
Bonsoir Moogli,

merci de nouveau pour ton aide.

J'ai bien le lien qui s'affiche dans la barre des tâches et j'ai également le bon chemin d'accès dans src.

Par contre, je me demande si c'est possible de faire cela en php. Ne faudrait-il pas plutôt utiliser AJAX ?

Par contre, je n'ai pas le lien dont tu me parles dans ton message.

Merci d'avance

Thierry
yearling
yearling
Déconnecté
Bonsoir Michel,

merci énormément pour ton aide.

C'était une bétise mais le principal, c'est que ça marche.

Encore merci à toi et à Moogli pour votre aide.

Thierry
Répondre
Accès rapide :

Remonter Remonter
L'éditeur javascript - CSS - Gentoo - Tutoriaux PHP - Tutoriels PHP - Breizh Blog