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 :

changer la source d'une image avec Firefox


Sujet :

JavaScript

  1. #1
    Membre régulier
    Avatar de couetbis
    Inscrit en
    Juillet 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2005
    Messages : 137
    Points : 106
    Points
    106
    Par défaut changer la source d'une image avec Firefox
    Bonjour,
    Comment changer la source d'une image à partir d'un Input File ?
    Voici mon code qui fonctionne bien avec IE mais pas Firefox.
    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
     
    <html>
    <head>
    <script language="JavaScript">
    function afficherImage(element,chemin)
    {
    	document.getElementById(element).src = chemin;
    }
    </script>
    </head>
    <body>
     
        <img id="imgec" src=""/>
        <input id="idImageEc" name="EdImgec" type="file" 
               value="" 
               onchange="afficherImage('imgec',this.value)" />
     
    </body>
    </html>
    J'ai l'impression que c'est un problème de chemin absolu car je teste avec des chaines en dur, les chemins relatifs passent bien mais pas les chemins absolus.

    Comment faire ?

  2. #2
    Membre régulier
    Avatar de couetbis
    Inscrit en
    Juillet 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2005
    Messages : 137
    Points : 106
    Points
    106
    Par défaut
    Finalement, il suffit de concaténer "file:///" au chemin.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function afficherImage(element,chemin)
    {
    	document.getElementById(element).src = 'file:///' + chemin;
    }

  3. #3
    Membre régulier
    Avatar de couetbis
    Inscrit en
    Juillet 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2005
    Messages : 137
    Points : 106
    Points
    106
    Par défaut
    Fausse alerte !
    Finalement ça ne fonctionne qu'en statique. Je suis dans le cas d'une application web avec un serveur java - tomcat - des pages jsp et ça ne fonctionne pas.
    Y a t-il des restrictions particulières avec Firefox ? Un manque de droit ?

  4. #4
    Membre régulier Avatar de arkandias
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 103
    Points
    103
    Par défaut
    Si tu veux le faire sur le net et pas en local, aucune chance que ca marche avec aucun navigateur que ce soit

    C'est une mesure de sécurité, sur Internet tu ne peux pas afficher les données du disque dur du client

  5. #5
    Membre régulier
    Avatar de couetbis
    Inscrit en
    Juillet 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2005
    Messages : 137
    Points : 106
    Points
    106
    Par défaut
    Je comprends que pour des raisons de sécurité ce soit interdit mais ça fonctionne quand même avec IE !
    Dommage ...

  6. #6
    Membre régulier Avatar de arkandias
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 103
    Points
    103
    Par défaut
    Ca ne marche pas chez moi (heureusement !)

    Quand tu vas sur ton site web, et que tu sélectionne un fichiersur ton disque dur, il t'affiche l'image ??

  7. #7
    Membre régulier
    Avatar de couetbis
    Inscrit en
    Juillet 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2005
    Messages : 137
    Points : 106
    Points
    106
    Par défaut
    Oui aussi bizarre que cela semble paraitre ça affiche mon fichier image !
    Tu peux tester le code ci-dessous avec IE :
    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
     
    <html>
    <head>
    <script language="JavaScript">
    function afficherImage(element,chemin)
    {
    	document.getElementById(element).src = chemin;
    }                  
     
    </script>
    </head>
    <body>
        <img id="imgec" src=""/>
        <input id="idImageEc" name="EdTypeAbsence.imgec" type="file" 
               value="" 
               onchange="afficherImage('imgec',this.value)" />
    </body>
    </html>

  8. #8
    Membre régulier Avatar de arkandias
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 103
    Points
    103
    Par défaut
    J'ai déjà essayé ca ne marche pas... http://arkandias.free.fr/test5-7.htm

  9. #9
    Membre régulier
    Avatar de couetbis
    Inscrit en
    Juillet 2005
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juillet 2005
    Messages : 137
    Points : 106
    Points
    106
    Par défaut
    Eh bien ça marche pour moi, je sélectionne une image, j'ai donc une un chemin du type C:\Documents and Settings\login\Bureau\images\coche2.png dans le input. J'ai peut-être un mauvais niveau de sécurité dans la configuration d'IE.
    Je comprends pourquoi ça ne peut pas marcher mais je trouve ça dommage car l'utilité que j'en fait est très naïve ... enfin le problème c'est qu'il y a toujours de dérives.
    En tout cas merci pour toutes tes explications !

  10. #10
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut couetbis n'est pas fou :)
    Une petite analyse...

    Partons d'un cas simple:
    1. créer un fichier test.html
    2. mettre une image dont la source est un chemin local
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <img src="file:///Users/xxxxx/images/image.png" alt="image.png">
    3. on test...

    Différents cas peuvent alors se présenter, selon le protocole utilisé :
    - protocole 'file' : file:///chemin/vers/ma/page.html
    - protocole 'http' : http://mon.site.com/page.html (ou http://localhost/page.html)

    On est tous d'accord qu'avec le protocole 'file' (c'est peut etre pas vraiment un protocole, mais bon...), l'image est affichée, avec IE comme avec Firefox.

    Avec 'http', c'est different : l'interpreteur javascript du navigateur doit empécher (pour les raisons de sécurité citées dans les messages précédents) la lecture (et bien évidemment l'écriture aussi...) des fichiers locaux, à moins qu'on lui indique explicitement (cas d'un upload). Verdict :
    - avec Firefox : le 'alt' est affiché (normal, l'image n'est pas accessible)
    - avec IE ... l'image est affichée !!!

    On peut tout d'abord penser que le test ayant été effectué avec l'url http://localhost/page.html, IE devine que c'est en local et donc autorise la lecture. Quenéni (de toute facon je suis sur mac, donc pas d'IE en local). Le test précédent a été effectué depuis un PC du réseau, avec IE6, en pointant une url du type http://192.168.56.3/page.html, ou l'ip est celle de mon mac.

    Bilan : IE6 permet bel et bien la lecture de fichier locaux via javascript

    Et bien les gars, si ca c'est pas une faille de sécu...
    PS: Quelqu'un pourrait-il tester avec IE7 svp ?

    Cordialement,
    Guillaume

  11. #11
    Futur Membre du Club
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par arkandias Voir le message
    J'ai déjà essayé ca ne marche pas... http://arkandias.free.fr/test5-7.htm
    Et au fait, avec IE6, ca marche pour moi

  12. #12
    Membre régulier Avatar de arkandias
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 102
    Points : 103
    Points
    103
    Par défaut
    Ca me parait bizarre... en fait moi j'utilise IE7 et ca ne marche pas

Discussions similaires

  1. [MySQL] impossible d'afficher une image avec firefox
    Par keithsize dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 15/06/2009, 21h20
  2. Changer la source d'une image dans un panel
    Par Thomus38 dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 12/12/2007, 21h31
  3. Changer la source d'une image
    Par maitrebn dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 20/07/2007, 10h20
  4. Pb de liens sur une image avec firefox
    Par potao dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/04/2007, 12h08
  5. Enregistrement d'une image avec Firefox
    Par Eusebius dans le forum Applications et environnements graphiques
    Réponses: 9
    Dernier message: 05/07/2006, 11h22

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