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 :

Firefox 3 et type = "file"


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut Firefox 3 et type = "file"
    Bonsoir,

    je suis actuellement à faire joujou avec les formulaires et plus particulièrement le type="file".

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    	<head>
    	  <title>Upload</title>
    	</head>
    	<body>
    		<form method = "POST" action = "#" >
    			<input type = "file" name = "unUploadeur" />
    		</form> 
    	</body>
    </html>

    mais voici... Sous Firefox 3...
    Le champ est grisé et dès que l'on clique dessus, c'est comme si on avait cliqué sur le bouton parcourir.

    Et cela est gênant pour l'application que je suis à développer...

    Donc y-aurait-il à votre connaissance un moyen de simuler le comportement de Firefox 2 ?
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1- deja : <form method="post" ENCTYPE="multipart/form-data" action="">

    2- qu'espères-tu avoir ?
    PS: regarde aussi sur Safari : l'affichage n'a rien à voir.

  3. #3
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Oui pour l'enctype

    J'avoue l'avoir laissé de coté pour cet exemple... Je ne le ferai pas la prochaine fois


    Il faudrait que le rendu soit celui de FF2. A savoir que la zone de texte à la gauche du bouton parcourir soit éditable et que lorsque l'on clique dessus (cette zone), qu'elle ne lance pas l'action du bouton parcourir.
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  4. #4
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Salut Deallyra,

    Malheureusement ce n'est pas possible en CSS ... tout comme les select sous IE, impossible de styler un input file sous Firefox3.

    Attention à ton doctype HTML4.01 Transitional incomplet qui bascule les navigateurs graphiques en mode de rendu Quirks

  5. #5
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    C'est le doctype de base de ZF xD
    Je m'étais rapidement bricolé ce fichier... Parce que j'avais vu ce problème sous ZF :s

    Du coup je m'étais dit que l'element file avait une pré-config pour avoir ce résultat u_u

    Et puis j'ai vu que sur un ancien site que j'avais réalisé, j'avais la même chose

    Donc j'ai finit par tester sous IE puis Firefox2...

    Bref, impossible alors... En CSS... JavaScript ce serait possible ? ^^'
    (savoir si je pose la question là bas)

    Merci à vous deux

    edit : en fait non, ce n'est pas son doctype par défaut O.o
    Je ne comprends pas :s Merci xD
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  6. #6
    Rédacteur
    Avatar de Macmillenium
    Homme Profil pro
    Développeur front-end
    Inscrit en
    Mars 2008
    Messages
    2 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur front-end
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 2 333
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Bref, impossible alors... En CSS... JavaScript ce serait possible ? ^^'
    (savoir si je pose la question là bas)
    Complètement déconseillé mais ... possible de tricher

  7. #7
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Je reviens à la charge avec une nouvelle idée...

    Heu... Franchement c'est laid, infâme et tout ce qu'on veut mais ça pourrait marcher avec les connaissances adéquates sur le sujet. Et surtout je ne peux pas faire autrement... Il m'a été demandé de pouvoir modifier à la main cette zone T_T

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "fr" lang = "fr">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<title>
    			input type=file & Firefox 3
    		</title>
    	</head>
    	<body>
    		<div style = "position: relative">
    			<form method = "GET" action = "#" enctype="multipart/form-data" onSubmit="this.getElementById('unInputFile').value=this.getElementId('unInputText').value" >
    			    <input type = "file" id = "unInputFile" onChange="this.form.getElementById('unInputText').value=this.value" />
    			    <div style = "position: absolute; top: 0; left: 0; width: 11em; height: 2em;" >
    			    	<input type = "text" id = "unInputText" />
    			    </div>
    			    <br />
    			    <input type = "submit" value = "Envoyer" />
    			</form>
    		</div>
    	</body>
    </html>
    L'idée serait donc de pouvoir alimenter la zone unInputText avec le bouton parcourir.
    En fait, dupliquer la valeur de unInputFile dans unInputText.

    A la soumission du formulaire, remplacer la valeur de unInputFile par celle de unInputText (même si la saisie peut être erronée ou autre, il y aura des tests à la page suivante et tout le tralala mais bon...)

    Mais je n'arrive pas à le faire fonctionner... Savoir quel évènement utiliser aussi :s
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Salut,
    essaye avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type = "file" id = "unInputFile" onChange="document.getElementById('unInputText').value=this.value" />

  9. #9
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Merci Andry pour cette réponse rapide. Et à tout ceux qui m'auront aidés

    C'est nickel

    Voici le code final.

    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
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     
    <html xmlns = "http://www.w3.org/1999/xhtml" xml:lang = "fr" lang = "fr">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    		<title>
    			input type=file & Firefox 3
    		</title>
    	</head>
    	<body>
    		<?php
                            if(isset($_POST['upload']))
                            {
                                $content_dir = './'; // dossier où sera déplacé le fichier
                            
                                $tmp_file = $_FILES['unInputFile']['tmp_name'];
                            
                                if( !is_uploaded_file($tmp_file) )
                                {
                                    exit('Le fichier est introuvable');
                                }
                                $name_file = $_FILES['unInputFile']['name'];
                                if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
                                {
                                    exit('Impossible de copier le fichier dans $content_dir');
                                }
                                echo "Le fichier a bien été uploadé";
    }
                    ?>
     
    		<div style = "position: relative">
    			<form method = "POST" action = "php.php" enctype="multipart/form-data" onSubmit="document.getElementById('unInputFile').value=document.getElementById('unInputText').value" >
    			    <input type = "file" name = "unInputFile" id = "unInputFile" onChange="document.getElementById('unInputText').value=this.value" />
    			    <div style = "position: absolute; top: 0; left: 0; width: 11em; height: 2em;" >
    			    	<input type = "text" id = "unInputText" />
    			    </div>
    			    <br />
    			    <input type = "submit" name = "upload" value = "Envoyer" />
    			</form>
    		</div>
    	</body>
    </html>
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  10. #10
    Membre Expert
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Par défaut
    Désolé de jouer les rabat-joie mais ça ne fonctionne pas avec FF3 (en tout cas pas avec la version 3.0.10)

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    non c'est une securité complementaire sur les browser recents ...
    on ne peut pas recupérer le path complet coté client
    cel evite la possibilité de navigation sur le disque client

    il faut passer par une solution externe au browser de type flash
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2004, 15h44

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