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érer le chemin UNC


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 28
    Par défaut Récupérer le chemin UNC
    Bonjour,


    Je développe un site interne à une entreprise et je suis en train de créer une rubrique où l'on peut poster des liens pointant sur de la documentation située sur différents lecteurs réseau.
    Pour ajouter une documentation, l'utilisateur utilise un formulaire où il entre :
    -le titre de la documentation
    -le chemin réseau de cette documentation (à l'aide d'un bouton parcourir)


    Le problème est que la lettre du lecteur réseau peut variée selon la configuration de l'utilisateur. Il faudrait un script qui soit capable de convertir ce chemin au format UNC de façon à ce que la documention soit accessible par tous les postes.
    Exemple : on entre ce lien "X:\rep\fichier.doc", il faut le traduire en "\\nom-du-serveur\rep\fichier.doc"
    Remarque : Le serveur Web ne peut pas contacter les différents lecteurs réseaux.

    Avez-vous une idée ? Merci

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

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Salut,
    si j’ai bien compris ton problème, il s’agit d’une simple manipulation de string.
    Mettons que tu as une table associative qui associe les lettres lecteur (« X: ») aux noms de serveurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var netDrivers = {
    	// par exemple
    	S: '\\\\share',
    	T: '\\\\temp',
    	X: '\\\\resource'
    }
    (Il faut doubler les antislashes pour qu’ils soient traités comme des littéraux.)

    Mettons que ton bouton « parcourir » porte l’id doc. Tu récupères le chemin du document via l’attribut value :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var path = document.getElementById('doc').value;
    Ensuite ce n’est qu’une affaire de strings.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var letter = path[0];
    path = path.substr(2); // on élimine la lettre et le ':'
    var driver = netDrivers[letter];
    var convertedPath = driver + path;
    Je réponds bien à ta question ?


    Edit : Ah oui, je vois où est le problème… on ne peut pas obtenir le chemin complet du ficher, pour des raisons de sécurité. Je crois qu’il va falloir traiter ça côté serveur…
    Ce qui est ennuyeux, c’est que le fichier va voyager sur le réseau alors qu’il n’y a pas besoin… Je réfléchis à une solution.

    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 28
    Par défaut
    Salut Watilin !

    C'est en partie mon problème ...
    En fait, dans l'entreprise nous avons plusieurs lecteurs réseaux pouvant correspondrent à différentes lettres selon les postes.
    Par exemple sur le poste A on peut avoir :
    X: --> serveur1
    Y: --> serveur2
    Z: --> serveur3

    et sur le poste B on peut très bien avoir :
    X: --> serveur3
    Y: --> serveur2
    Z: --> serveur1

    Imaginons que le l'utilisateur du poste A souhaite publier sur le site un lien vers un fichier du serveur1. Il va donc cliquer sur le bonton "Parcourir" et choisir le fichier. Il aura alors le lien : "X:\fichier.doc".

    Maintenant, lorsque le poste B se connecte au site pour consulter le lien publié par le poste A, il aura alors "page introuvable" puisque pour lui X: correspond au serveur3.

    Tu vois le truc ?
    Il faudrait pour bien faire utiliser des chemin complet (UNC) de ce type :
    \\serveur1\fichier.doc
    Ainsi le chemin devient générique et accessible par tous les postes quel que soit les lettres utilisées.
    Mon grand problème est donc : Comment détecter le nom du serveur en fonction du chemin renseigné par l'utilisateur ?

    Puis effectivement, comme tu l'as dit, mon problème est aussi de récupérer le chemin entier renseigné par l'utilisateur (X:\fichier.doc) et pas seulement le nom du fichier (fichier.doc). Mais apparament c'est une nouvelle sécurité de Firefox 3. Il me faudrait un moyen de la contourner .... Et en plus le fichier voyage effectivement !

    Voilà tout ... C'est assez critique comme problème .. Si tu as des idées je prends avec plaisir !

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 28
    Par défaut
    Avec une applet java ça pourrait le faire ?

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

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Hmm oui, quand un navigateur met en place une politique de sécurité JavaScript, le but est que justement il n’y ait pas moyen de la contourner…
    Il faut donc passer par autre chose que JavaScript, avec par exemple un objet Flash, un ActiveX ou, comme tu le dis, un applet Java.

    Mais dans ce domaine, je ne pourrai guère t’aider…
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 28
    Par défaut
    OK merci Watilin mais bon l'applet java a aussi des sécurités en fait (cf: http://www.developpez.net/forums/d94...n-unc-fichier/ ) ...
    De toute manière même en faisant un $_FILES['fichier']['tmp_name'] comme certain le préconise je n'arrive même pas à récupérer le chemin local (X:\rep\fichier.doc) mais un chemin sous la forme /tmp/phpJABrlq ... Ca devient très critique pour mon projet puisque les utilisateurs ne seront pas motivés à écrire les chemins entièrement à la main et risquent de bouder mon outil web .......

    Mon problème est loin d'être sorcier et je suis vraiment surpris qu'après tant d'heures de recherche sur le net il n'y ai aucune solution à mettre en oeuvre..........

  7. #7
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    il y a visiblement un problème d'analyse au départ

    Une solution serait de mapper (de faire mapper par l'admin réseau) les différents "lecteurs" pour qu'il soit accessibles via un répertoire spécifique sur la machine qui héberge ton serveur web.
    Au moins, ton serveur pourrait accéder aux documents via un path fixe et connu.
    Par contre, il restera toujours le problème de déterminer que le lecteur X de l'utilisateur Toto n'est pas le même que le lecteur X de l'utilisateur Titi (et donc se brancher sur le bon "répertoire" du serveur).

    A+

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

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Je me demande si on ne peut pas aller fouiller dans le registre avec un applet. Je me souviens avoir trouvé le mappage lors de mes déboires avec Grub (toute une histoire ^^)
    HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
    Ça m’étonnerait qu’on ait le droit, mais c’est une piste…

    Autorisez-vous la page actuelle à acquérir les droits du compte administrateur pour démonter votre disque dur ?
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 28
    Par défaut
    @E.Bzz : Arf, ce n'est pas possible ... Le serveur web ne doit pas pouvoir communiquer avec les différents lecteur réseau (question de sécurité). Il faut à tout prix que la résolution du chemin se fasse sur la machine cliente.

    @Watilin : Admettons que ça soit possible .. J'imagine bien que ce serait une sacré usine à gaz cet applet .. Moi qui ne connais rien de rien à Java, je suis pas rendu .. Il me faut une solution rapidement, c'est maintenant devenu très critique ... Peut-être changer de plan ...

Discussions similaires

  1. Récupérer le chemin UNC d'un fichier
    Par Toutella dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 08/07/2010, 11h04
  2. Comment récupérer le chemin UNC d'un lecteur réseau connecté ?
    Par david_chardonnet dans le forum Langage
    Réponses: 1
    Dernier message: 12/12/2007, 16h54
  3. Récupérer le chemin UNC d'un lecteur réseau ?
    Par agronomia dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/10/2007, 12h30
  4. récupérer le chemin UNC d'un fichier
    Par charlene44 dans le forum Langage
    Réponses: 5
    Dernier message: 14/06/2006, 17h13
  5. Récupérer le chemin UNC d'un PC
    Par soso78 dans le forum Access
    Réponses: 2
    Dernier message: 26/01/2006, 11h34

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