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