Changer le bouton browse d'un input type=file

Fermé
nono - 24 mai 2002 à 15:35
 Max - 12 nov. 2012 à 15:18
je desirerait changer le bouton browse d'un champ file par une image
Comment puis-je faire???
Merci

5 réponses

Il y a très simple : il faut rendre le input file invisible:

<input type="file" id="monInputFile" style="visibility:hidden"/>


puis créer son propre bouton avec un événement onclick (type jquery ici) qui va ouvrir le sélecteur du navigateur sans dévoiler le inputfile:

<input type="button" style="border:1px solid #000;width:100px;height:30px;background-color:#CCC;" onclick="$('#monInputFile').click();"/>
12
Ca ne marchera pas sur IE qui pour des raisons de sécurité empêche ce genre de manipulation
0
Bonjour, vous pouvez faire, ce très simple comme ça

<label for="photo" style="cursor:pointer; border:1px solid #999999; background-color:#eeeeee; padding:1px 3px 1px 3px; color:#333333;">Add photo</label>
<input type="file" name="photo" id="photo" style="position:absolute; top:-20000px;"/>
5
Vous pouvez faire comme suit :
- Créer un faux formulaire avec un champ text, une icone browse et une icone submit
- Dans le même formulaire, placer un vrai champ file par-dessus les 2 précédents (text/browse), grâce au span z-index et au style opacity.
- Régler éventuellement les positions relative/absolute et top/middle/bottom/left/right:Xpx de chacun des 2 spans, en fonction des size des input.

Ce qui donne quelque chose comme :
<FORM name="myform" action="page.html" method="get" enctype="multipart/form-data">
  <SPAN stype="position:relative;z-index:0;">
    <INPUT type="text" size=12 name="myFileText">
    <INPUT type="image" src="browse.gif" border="0">
    <INPUT type="image" name="submit" value="fileValue" src="submit.gif">
    <SPAN STYLE="position:absolute;middle:0px;left:0px;z-index:1;">
      <INPUT type="hidden" name="fileOp" value="fileValue">
      <SCRIPT type="text/javascript">
        function fillForm() { document.myform.myFileText.value=document.myform.upName.value; }
      </SCRIPT>
      <INPUT type="file" style="-moz-opacity:0;filter:alpha(opacity:0);-khtml-opacity:0;"
        size=1 name="upName" onkeyup="fillForm();" onmouseout="fillForm();">
    </SPAN>
  </SPAN>
</FORM>

Sylvain / http://www.marliere.org/
4
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504
13 janv. 2008 à 12:51
En effet, cette solution existe,.. Mais.

Elle est développée ici : http://www.quirksmode.org/dom/inputfile.html [en] (désolé les non-anglicistes).
Et comme l'indique cette page, il existe de nombreux problèmes de compatibilité avec les différents navigateurs.

La raison est que chaque navigateur gère à sa façon l'input file et sa taille varie complètement de IE à Firefox et surtout de Safari. Hors la solution présentée ici suppose que l'input fait toujours la même taille.
4

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xadrez Messages postés 149 Date d'inscription samedi 3 novembre 2001 Statut Membre Dernière intervention 23 mai 2003 16
25 mai 2002 à 12:14
Euh, à mon avis tu débutes...

Tu n'es pas obligé de faire un input type etc...
Tu peux très bien créer ton propre bouton (deux images avec survol)

Sur l'échiquier de la vie, j'ai choisi d'être le Fou,
parce que je ne suis pas Cavalier. Xadrez
3
1. je crois que tes remarques sont un peu déplacées car comment veux-tu connaitre mon niveau en une seule question.
2. tu n'as tjs pas répondu à ma question
3. je ne m'attarde pas a connaitre ce genre de futilité car moi je m'occupe de la programmation et pas de l'ergonomie du site seulement qd le client veut il faut trouver
4. si tu reponds ca a chaque avis que tu donnes t'es un peu mal barre car vu le nombre de messages ...
5. Personne ne connait tout sur les techniques du Web, un forum sert a ca et pas a critiquer la personne qui pose sa question .
Bref quand tu auras besoin de reponse en C# , C++ ou C ... appelle
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504 > nono
26 mai 2002 à 00:34
Je rejoins nono sur les points 1, 2, 4, 5 :o) (j'hésite pour le 3)

La réponse est simple, c'est imposible de changer l'apparence d'un input type="file" en HTML.

Il y aurait une possibilité avec des ActiveX, mais cette solution n'est pas compatible.

-= Bobinours =-
0
Bobinours Messages postés 2898 Date d'inscription jeudi 26 avril 2001 Statut Membre Dernière intervention 21 mars 2013 504 > nono
26 mai 2002 à 00:48
J'ai retrouvé le lien parlant de cela, mais je dis préviens que je suis contre cette solution : http://www.allhtml.com/forum/index.php?t=l&f=2&i=112081

-= Bobinours =-
0
math 2000 Messages postés 2605 Date d'inscription dimanche 9 septembre 2007 Statut Membre Dernière intervention 7 mai 2016 404
22 juil. 2009 à 19:15
0