web-dev-qa-db-fra.com

Une URL vers un dossier partagé Windows

Existe-t-il un moyen d'incorporer un lien fonctionnel vers un dossier partagé Windows dans une page HTML? Par exemple. un lien vers \\server\folder\path?

Pour simplifier, disons que la page sera ouverte sur une machine Windows (et sur le même intranet où se trouve server, bien sûr.)

J'ai essayé quelques astuces avec file:// schéma, mais aucun ne semblait fonctionner.

26
alex

Je pense qu'il y a deux problèmes:

  1. Vous devez échapper aux barres obliques.
  2. Sécurité du navigateur.

Explication:

  1. J'ai vérifié l'un des miens, j'ai le patron:

    <a href="file://///server01\fshare\dir1\dir2\dir3">useful link </a>
    

    Veuillez noter que nous nous sommes retrouvés avec 5 barres obliques après le protocole (file:)

  2. Firefox essaiera d'empêcher les scripts intersites. Ma solution a été de modifier prefs.js dans le répertoire des profils. Vous allez ajouter deux lignes:

    user_pref("capability.policy.localfilelinks.checkloaduri.enabled", "allAccess");
    user_pref("capability.policy.localfilelinks.sites", "http://mysite.company.org");
    
26
Bill

Les URI de protocole de fichier sont comme ceci

fichier: // [Host]/[PATH]

c'est pourquoi vous voyez souvent des URL de fichiers comme ceci (3 barres obliques) file: /// c:\path ...

Donc, si l'hôte est server01, vous voulez

fichier: // server01/dossier/chemin ....

Ceci est conforme à la page wikipedia sur les protocoles file: // et vérifie avec la méthode Uri.IsWellFormedUriString de .NET.

8
Jim W

Si vous êtes autorisé à aller plus loin que les fonctionnalités javascript/html - j'utiliserais le serveur Web Apache pour représenter votre liste d'annuaire via http.

Si cette solution est appropriée. ce sont les étapes:

  1. télécharger le serveur Apache hhtp depuis l'un des miroirs http://httpd.Apache.org/download.cgi

  2. décompressez/installez (si msi) dans le répertoire par exemple C:\opt\Apache (l'instruction est pour Windows)

  3. mappez le réseau forlder en tant que lecteur local sur Windows (dossier\server\pour disons lecteur H :)

  4. ouvrir le fichier conf/httpd.conf

  5. assurez-vous que la ligne suivante est présente et non commentée

    LoadModule autoindex_module modules/mod_autoindex.so

  6. Ajouter une configuration d'annuaire

<Directory "H:/path">

Options +Indexes

AllowOverride None

Order allow,deny

Allow from all

</Directory> 7. Démarrez le serveur Web et assurez-vous que la liste des répertoires du dossier distant est disponible par http. cliquez sur localhost/path 8. utilisez un cadre à l'intérieur de votre page Web pour accéder à la liste

Ce qui manque: 1. vous avez besoin d'une configuration plus sophistiquée pour le nom d'hôte, reportez-vous aux documents Apache Web Server. Enregistrer le nom d'hôte sur le serveur DNS

  1. le mappage sur le lecteur réseau peut ne pas fonctionner, je n'ai pas vérifié. Comme une résolution possible - Hébergez votre serveur Web sur la même machine que le serveur smb.
1
Pavlonator