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 :

GetElementById('Fic') et Firefox


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut GetElementById('Fic') et Firefox
    Bonjour.

    Dans mon fichier HTML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <input type="file" id="fic">
    <input type='button'  value=' valider' onclick="Valider();"
    Mon code JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function Valider()
    {
       Chemin = document.GetElementById("fic").value;
       alert(Chemin);
    }
    Avec IE 7/8, pas de problème, je récupère le chemin entier.
    Avec FF 3.6.3, je ne récupère que le nom du fichier.
    J'ai lu qu'il s'agissait d'une question de sécurité mais moi, j'ai ABSOLUMENT besoin de récupérer le chemin entier (pour un upload).

    Y a-t-il une astuce pour contourner ce "bug" de Firefox ?

    Merci

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Laskar Voir le message
    J'ai lu qu'il s'agissait d'une question de sécurité mais moi, j'ai ABSOLUMENT besoin de récupérer le chemin entier (pour un upload).

    Y a-t-il une astuce pour contourner ce "bug" de Firefox ?

    Merci
    Pour toi, la sécurité est un bug
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Bonjour,

    C'est absolument normal.

    Ce n'est plus possible avec l'évolution des navigateurs et les verrous de sécurités mis en place avec l'arrivée d'AJAX.

    Mais tu n'as pas besoin du chemin d'origine du fichier pour réaliser un upload, le navigateur se charge de récupérer le fichier

    Y.


    devYan.

  4. #4
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Pour toi, la sécurité est un bug
    Certes non. C'est pour ça que j'ai mis le mot entre guillemets

    Mais dans la mesure où ça fonctionne sous IE, je ne vois pas bien l'interêt du truc sous FF, d'autant que cette fonction marchait avec les premières versions de Mozilla (inférieure à 3).

    Bref, avez-vous une solution pour contourner ça ?

  5. #5
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par devyan Voir le message
    Bonjour,
    Mais tu n'as pas besoin du chemin d'origine du fichier pour réaliser un upload, le navigateur se charge de récupérer le fichier
    Justement, j'ai besoin de ça pour l'integrer dans un site AJAX. C'est quoi l'astuce ?

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 132
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 132
    Points : 1 418
    Points
    1 418
    Par défaut
    Heu... l'upload de fichier n'est pas permis en AJAX pour des questions de sécurité.


    devYan.

  7. #7
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.GetElementById
    déja je m'etonne que tu recupères quoi que ce soit ...
    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 !

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Pour faire ça, tu vas être obliger de jouer avec des Iframes D: et avec la variable $_FILES (si c'est en PHP, of course)

  9. #9
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut


    J'ai l'impression qu'on tourne un peu en rond.

    Le problème n'est pas de savoir si c'est permis ou pas ni de savoir si ça marche ou pas. Le code que j'ai écrit fonctionne très bien sous Internet Explorer. Ma question est de savoir comment je peux l'adapter pour Firefox 3.6.3.

    Avec IE,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chemin = document.getElementById("fic").value;
    ... Chemin = "c:\Desktop\Files2Upload\monfichier.pdf"

    Avec FF, Chemin = "monfichier.pdf"

    Comment puis-je rapatrier sur mon serveur ce fichier "monfichier.pdf" si j'en ignore l'origine ?

    Concernant la variable $_FILES de php, dans le cas de FF, $_FILES["fic"] me provoque une erreur on expliquant que "fic" n'est pas l'indice d'un tableau !!
    IE, lui, me trouve bien les infos concernant le fichier.

    J'imagine que les développeurs de FF qui ont supprimé la possibilité d'accéder au chemin d'un fichier obtenu par le bouton 'parcourir' d'un formulaire géré par Javascript ont du la remplacer par autre chose !
    Mais quoi ?

  10. #10
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    php le gère tout seul il n'a pas besoin du path client il recupère le flux du fichier dans $FILES ..
    http://antoine-herault.developpez.co...ls/php/upload/
    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 !

  11. #11
    Membre habitué Avatar de Laskar
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2002
    Messages : 228
    Points : 139
    Points
    139
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    php le gère tout seul il n'a pas besoin du path client il recupère le flux du fichier dans $FILES ..
    http://antoine-herault.developpez.co...ls/php/upload/
    Merci SpaceFrog mais tout ceci est OK entre deux pages PHP. Moi, j'ai besoin de faire intervenir javascript. Dans mon code HTML j'ai une liste de fichiers PDF en téléchargement. En mode Admin, un bouton apparaît en bas de liste qui me permet d'ajouter un fichier dans la liste (et son descriptif dans une base MySQL). Quand je clique sur le bouton 'Ajouter un texte', une fonction JS affiche une petite fenêtre de dialogue (dans une DIV flottante). Extrait de ce code HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Titre  : <input type="text" name="titre">
    Description : <input type="text" name="desc">
    <input type="file" id="fic">
    <input type='button' value=' valider' onclick="Valider();"
    <input type='button' value=' Annuler ' onclick="document.getElementById('DialNewFile').style.display='none';>
    ... et c'est là que ça coince car ma variable "fic" reçue par la fonction Valider() est inexploitable sous FF (mais correcte sous IE).
    La fonction Valider() utilise un objet AJAX pour enregistrer dans la base le nom du fichier, son titre et l'heure de l'upload. Ce même objet fait ensuite l'upload du fichier dans le dossier de mon serveur, referme le dialogue et met à jour la liste des fichiers dispos dans mon code HTML.

    Une fois encore, tout fonctionne à merveille avec IE (7 ou 8) mais ne marche pas du tout avec FF 3

    Devant l'absence de solution, je vais tenter de réorganiser mon site autrement. Mais j'ai bien peur qu'il y perde en simplicité et en convivialité.

  12. #12
    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 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Devant l'absence de solution, je vais tenter de réorganiser mon site autrement. Mais j'ai bien peur qu'il y perde en simplicité et en convivialité.
    Mais y gagner en sécurité ...

    Nous sommes vraiment désolé que IE laisse passer de telles choses ...
    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. getElementById().title dans firefox
    Par nou366 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 22/09/2011, 22h52
  2. document.getElementById().click() avec firefox sur un input type file
    Par nakata77 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/08/2010, 09h53
  3. getElementById().className sous FireFox
    Par mafanta dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/02/2010, 14h21
  4. equivalent de document.getElementById("").value dans firefox
    Par MedNaceur dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 12/05/2009, 10h46
  5. getElementById et Firefox
    Par ludo65 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 28/02/2005, 10h56

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