IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Preview d'une image avant upload


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut Preview d'une image avant upload
    hello

    Je cherche � �crire un script javascript qui me permettre de visualiser une image avant de l'uploader.

    Mon code est le suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <script language="javascript" type="text/javascript">
      function refreshImg(){
         document.f1.picture.src = 'file:///'+ document.f1.imageField.value;
       }
    </script>
     
    Choisir le fichier : <input name="imageField" type="file" onchange="refreshImg()"><br />
     
    <img src="./images/vide.gif" border='0' id="picture">
    J'ai deux probl�mes :
    1. le code ne marche pas sous firefox (probl�me de s�curit� : y a-til moyen de le contourner ?)
    2. comment faire pour changer dynamiquement le nom de mes champs (imagefield et picture) en les pla�ant en param�tre � la fonction ?

    Merci de votre aide

  2. #2
    Membre exp�riment�
    Avatar de Caerbannog
    Inscrit en
    Novembre 2004
    Messages
    206
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 206
    Par d�faut
    Si il y a un pb de s�curit�, c'est �vident qu'il faut pas chercher � le contourner...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script language="javascript" type="text/javascript">
      function refreshImg(nom){
         document.getElementById(nom).src = 'file:///'+ document.f1.imageField.value;
       }
    </script>
     
    Choisir le fichier : <input name="imageField" type="file" onchange="refreshImg('picture')"><br />
     
    <img src="./images/vide.gif" border='0' id="picture">

  3. #3
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    quand je dis contourner... je pense � trouver un moyen diff�rent d'arriver au m�me r�sultat...

  4. #4
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    pour completer la reponse � la question 2, tu peux passer this ou this.value � ta fonction :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <input name="imageField" type="file" onchange="refreshImg('picture', this.value)">

  5. #5
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    ok j'ai essay�, ca marche

    et pour firefox tu connaiterais pas une piste qui pourrait m'aider � r�soudre mon probl�me ?

  6. #6
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    tu as un exemple de ton code en ligne ?

  7. #7
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    Citation Envoy� par Mr N.
    pour completer la reponse � la question 2, tu peux passer this ou this.value � ta fonction :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <input name="imageField" type="file" onchange="refreshImg('picture', this.value)">
    this.name pour �tre exact ;-)

  8. #8
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    non je bosse en local pour l'instant

    tu veux savoir quoi ?

    je peux copier/coller le code si tu veux

  9. #9
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    en substance ca donne ca :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <script language="javascript" type="text/javascript">
     
      function refreshImg(nom,fich){
         document.getElementById(nom).src = 'file:///'+ document.getElementById(fich).value;
       }
      </script>
    <form enctype="multipart/form-data" action="./index.php?rubrique=upload" method="post" name="f1">
    <table style="text-align: left; width: 930px; margin-top: 0px;" border="1" cellpadding="10" cellspacing="0">
      <tbody>
        <tr>
          <td colspan="1" rowspan="5" style="text-align: left; width:50%;">
     
    Votre fichier doit être au format jpg<br>Choisir le fichier : <input name="imageField" type="file" onchange="refreshImg('picture',this.name)"><br />
     
    <Img SRC="./images/vide.gif" border='0' id="picture" style="width:100%; height:435px;"></Img>
          </td>
    	  <td colspan="2" rowspan="1" style="text-align: left; width: 450px;">
    			Entrez le titre : <input name="titre">
    	  </td>
       <tr>
          <td colspan="2" rowspan="1">Entrez l'auteur : <input name="auteur"></td>
        </tr>
        <tr>
          <td colspan="2" rowspan="1">Entrez un prix : <input name="prix"></td>
        </tr>
        <tr>
          <td colspan="2" rowspan="1">Entrez une description : <br><textarea cols="50" rows="7" name="description"></textarea>
    </td>
        </tr>
        <tr>
    	  <td style="text-align: center;height: 100px; width:500px;" >
    		<img src="./images/vide.gif" id="mini" style="width:100%; height:100%;">
    	  </td>
    	  <td style="width:100px; text-align:right;">
    		autres images<br>
    		<input name="fichier2" type="file" onchange="refreshImg('mini',this.name)">
    		<input name="fichier3" type="file" onchange="refreshImg('mini',this.name)">
    		<input name="fichier4" type="file" onchange="refreshImg('mini',this.name)">
    		<input name="fichier5" type="file" onchange="refreshImg('mini',this.name)">
    		<input name="fichier6" type="file" onchange="refreshImg('mini',this.name)">
    	  </td>
     
    	</tr>
      </tbody>
    </table>
    <br>
    </div>
    <div align="center"><input type="submit" name="confirm_upload" value="Envoyer" ></div>
     
    </form>
    pour la mise en forme, (tableaux, etc) je changerai plus tard ;-)

    alors des id�es pour firefox ?

  10. #10
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    Citation Envoy� par nabbo
    non je bosse en local pour l'instant

    tu veux savoir quoi ?
    c'est juste que j'ai la flemme de faire un script, de l'upload� sur un serveur pour faire le test. ^^

    Sinon sur quel ligne Fx te met l'erreur ?

  11. #11
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    Erreur : document.getElementById(fich) has no properties

    Ligne : 4

  12. #12
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <input name="imageField" type="file" onchange="refreshImg('picture', this.value)">
    +
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
    function refreshImg(nom, fichier) {
       document.getElementById(nom).src = fichier;
    }

  13. #13
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    si je mets : onchange="refreshImg('picture', this.value)
    il ne donne pas de message d'erreur, mais aucune image ne s'affiche

    si je mets : onchange="refreshImg('picture', this.name)
    il me cr�e une image qui s'appelle 'undefined' (et qui donc n'existe pas...)

    mais je progresse...

    c'est pas document.getElementById(nom).src = fichier.qqch ?

  14. #14
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    this.name = imageField (<input name="imageField"...)
    Donc c'est bien this.value

  15. #15
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    Je viens de tester ceci en local et ca marche :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <input name="imageField" type="file" onchange="refreshImg('picture', this.value)">
     
    <script>
     
    function refreshImg(nom, fichier) {
       document.getElementById(nom).src = 'file:///'+fichier;
    }
     
    </script>
     
    <img id="picture" />

  16. #16
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    en mettant this.value et 'file:///'+fichier : il me remet l'erreur de s�curit� :

    Erreur de s�curit� : le contenu situ� � http://127.0.0.1/[...]/index.php?rubrique=upload ne peut pas charger de donn�es ou �tablir un lien vers file:///[...toto].jpg.

    en mettant this.value et fichier, il ne me met pas d'erreur, mais ne change pas l'image...

    je tourne en rond...

  17. #17
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    erf

    ton bout de code marche �galement chez moi, mais pas dans mon fichier avec les tableaux...

    je ne comprends rien l�...

  18. #18
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    ok

    c'est un probl�me de serveur.
    firefox accepte le fichier quand il est ouvert en local (fichier->ouvrir...), mais le refuse quand il vient d'un serveur (meme en local : 127.0.0.1)

    comment faire ?

  19. #19
    Membre averti
    Profil pro
    nabbo
    Inscrit en
    D�cembre 2005
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : nabbo

    Informations forums :
    Inscription : D�cembre 2005
    Messages : 35
    Par d�faut
    bon j'ai une partie de r�ponse... qui ne me convient pas franchement, mais qui marche...

    j'ai cherch� du c�t� de firefox...
    en modifiant la valeur de security.checkloaduri dans about:config

    mais bon cela revient � ouvrir une br�che tellement �norme que m�me moi je comprends ce que je fais...

    n'y aurait-il pas moyen de faire les choses proprement ?

  20. #20
    Expert confirm� Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par d�faut
    Tu ne peux rien faire. En javascript tu ne peux acceder � un domaine autre que celui d'o� est appel� le script.

+ R�pondre � la discussion
Cette discussion est r�solue.
Page 1 sur 2 12 Derni�reDerni�re

Discussions similaires

  1. Modifier la taille d'une image avant upload
    Par lololebricoleur dans le forum WebDev
    R�ponses: 4
    Dernier message: 13/12/2011, 18h31
  2. Resizer une image avant upload.
    Par defacta dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 01/12/2009, 12h52
  3. [Images] Redimensionner une image avant upload
    Par Baldy dans le forum Biblioth�ques et frameworks
    R�ponses: 5
    Dernier message: 08/05/2009, 13h07
  4. reduire une image avant l'upload
    Par stars333 dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 28/04/2007, 08h56
  5. pr�visualiser une image avant upload
    Par johan_b dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 26/01/2007, 20h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo