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 :

Récupération du chemin absolu d'un fichier (fakepath)


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 19
    Points
    19
    Par défaut Récupération du chemin absolu d'un fichier (fakepath)
    Bonjour,

    Je développe une application où je dois charger un fichier à l'aide d'un <input type="file">, mais le fichier n'est pas important. Ce qui est important c'est le chemin du fichier.

    Je dois récupérer le chemin du fichier à partir du input file.

    S'ils vous plaît, quelqu'un sait comment faire ? Parce que, après quelques recherches, j'ai vu que c'était pas vraiment possible... mais j'aimerais bien avoir une solution si elle existe.

    Merci d'avance.

  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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Ni l'application serveur (donc qui traite un formulaire) ni JavaScript n'ont à connaitre cette information, ce serait même une faille de sécurité de la fournir, c'est pourquoi aucun navigateur digne de ce nom ne le fait.
    Si "tu en as vraiment besoin" (reste à savoir pourquoi ), utilise IE6.
    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 à l'essai
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    C'est pour une entreprise et selon la spéc : un utilisateur sélectionne un fichier qui se trouve dans un répertoire partagé puis un administrateur (sur une autre jsp) ouvre le fichier en cliquant simplement sur un lien (C:\le chemin du fichier\nom du fichier).

    Si ce n'est pas possible, il faudra que l'utilisateur (non informaticien) sélectionne le chemin puis le nom du fichier.

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Essayez cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <html><head>
    <script type="text/javascript">
         function recup()
              {
         alert (document.getElementById('chemin').value) ;
              }
    </script>
    </head><body>
         <FORM onsubmit="recup()">
         Select a file: <input type="file" id="chemin">
         <input type="submit">
         </FORM>
    </body></html>
    P.S. Vous devez faire en séquence : Parcourir > Sélectionner un de vos fichiers > L'ouvrir > Puis enfin soumettre la requête

  5. #5
    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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('chemin').value
    A part avec les navigateurs obsolètes type IE6, cela ne récupère jamais le chemin du fichier...
    http://codepen.io/anon/pen/fgdAc
    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

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Fonctionne \ IE qui renvoie le chemin complet : C:\______\______\fichier.extension

    Résultats différents pour les autres nav :

    CHROME et OPERA renvoient : C:\fakepath\fichier.extension tandis que le "renard" ne retourne que fichier.extension

    Probablement du paramétrage de navigateur à mettre en place ?...

  7. #7
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 093
    Points : 6 754
    Points
    6 754
    Par défaut
    Citation Envoyé par iakou Voir le message
    Probablement du paramétrage de navigateur à mettre en place ?...
    Non : c'est une sécurité, elle est là pour protéger l'utilisateur. L'option était désactivable dans IE8, la version d'IE dans laquelle elle a été introduite ; quant à Firefox, il n'expose plus les chemins depuis sa version 3, et ce n'est pas configurable. Je n'ai pas d'infos précises pour les autres navigateurs, mais le fait que la sécurité soit présente dans IE8 et FF3 est un signe que c'est un principe assez ancien et bien implanté.

    Pour faire simple, JavaScript ne doit pas avoir accès au système de fichier ; un <input type="file"> a accès au système de fichier, c'est pourquoi il est nécessaire que JavaScript ne connaisse pas la vraie valeur de l'input. Il va falloir revoir la spec avec le client. Puisqu'il y a un <input type="file">, pourquoi ne pas s'en servir pour envoyer le fichier à l'administrateur ?

    Si le client ne veut pas revoir sa spec, il va falloir passer par un module tiers : activeX, applet Java, extension, ou autre.

    Je ne connais pas tous les aspects du projet mais je me demande simplement : est-ce que baser la partie client sur un navigateur web est la meilleure approche ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  8. #8
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    Bonjour.

    Merci à Watilin pour ces précisions (4h43 ! Le monde appartient à ceux qui se lèvent tôt...)
    Précedemment, j'avais écrit concernant IE : C:\___\___\ fichier.extension, je voulais montrer qu'il y a bien le chemin complet Ex : C:\Users\Philippe\Pictures\divers\masque1.JPG
    J'ai désactivé l'option "Inclure le chemin d'accès au répertoire local" par les outils IE, mais ce dernier me renvoie tjs le chemin complet.
    Il doit encore y avoir une subtilité IE 9.0 !
    Cdlt

    PS : Si dans l'application de 'baresi', il y a une bibliothèque dédiée, le nom de fichier devrait suffire. Non ?...

  9. #9
    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 418
    Points
    91 418
    Billets dans le blog
    20
    Par défaut
    concernant IE : C:\___\___\ fichier.extension


    Ce n'est vrai que si tu ouvres le fichier en local (protocole file:), installe un serveur local (type WAMP) et ouvre le fichier depuis le serveur (http://localhost) et tu te rendras compte que ce n'est plus du tout la même chose !

    Encore une fois, il s'agit d'un mécanisme lié à la sécurité et aucun navigateur ne joue avec ça !
    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

  10. #10
    Inactif  
    Homme Profil pro
    Inscrit en
    Janvier 2014
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Janvier 2014
    Messages : 374
    Points : 479
    Points
    479
    Par défaut
    C'est exact !

    Sous WAMP j'obtiens comme pour les autres nav C:\fakepath\fichier.extension

    Pour 'baresi', si dans sa boite les postes "clients" respectent un même protocole, peut-il s'en sortir seulement avec le nom du fichier ?

  11. #11
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Une solution bourrin que j'ai déjà explorée : le serveur a qu'à aller regarder lui-même ce qu'il y a sur le répertoire partagé et afficher son propre système de sélection de fichiers au lieu de passer par un <input file>.
    Ah suivant les cas c'est pas le même budget, mais en théorie il y a pas de problème si on maîtrise son SI.

    Il y aurait aussi l'idée de faire des extensions et de les installer sur les postes, pour que les navigateurs acceptent de fournir cette info à cette page du site de l'entreprise. Après tout, sur ces postes et pour cette page, c'est une sécurité qui n'est pas nécessaire.
    L'ennui c'est que faire ce genre d'extensions est déraisonnablement difficile et que les navigateurs évoluent trop vite.

    Bon, et faire un programme client lourd dédié au lieu de passer par un navigateur pour cette action-là, ça marche pas mal non plus.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Avril 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Avril 2012
    Messages : 26
    Points : 19
    Points
    19
    Par défaut
    Merci à tous pour ces réponses

    Je pense que la meilleur solution est une modification de la spec. L'utilisateur saisie le chemin + le nom du fichier... Vu comment la BDD a été faite

    Sinon ce ne serait pas faisable avec la classe File de java ?

  13. #13
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par baresi Voir le message
    Je pense que la meilleur solution est une modification de la spec. L'utilisateur saisie le chemin + le nom du fichier... Vu comment la BDD a été faite
    La meilleure solution est une modification de l'idée. L'utilisateur doit "parler d'un fichier partagé" sur une application, mais il doit aller chercher ce fichier ailleurs que dans l'application ? Ça ne tient pas.

    Citation Envoyé par baresi Voir le message
    Sinon ce ne serait pas faisable avec la classe File de java ?
    Ben oui, c'est ce qu'on t'a dit avec l'approche "client lourd." Mais on ne fait pas de Java dans une page web.

    ... Sauf à la rigueur si tu pensais à une applet. Là oui, effectivement, applet Java ou Flash, les deux peuvent le faire. Mais il faut que le plug-in soit installé bien sûr. Ce serait donc plutôt du flash.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

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

Discussions similaires

  1. Récupération d'un chemin absolu d'un fichier "<input type='file'" name='' />
    Par soren dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 26/01/2012, 11h34
  2. Récupérer le chemin absolu d'un fichier
    Par alliance dans le forum C++
    Réponses: 6
    Dernier message: 22/10/2007, 13h35
  3. Recuperation du chemin absolu d'un fichier
    Par seb0634 dans le forum Struts 1
    Réponses: 3
    Dernier message: 14/08/2007, 14h30
  4. [Batch] chemin absolu / Nom de fichier
    Par andlio dans le forum Windows
    Réponses: 3
    Dernier message: 03/08/2006, 03h40
  5. [langage] chemin absolu d un fichier
    Par nono1782 dans le forum Langage
    Réponses: 4
    Dernier message: 20/07/2004, 14h02

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