2009-05-13 6 views
71

Je dois laisser les utilisateurs d'une application ouvrir un dossier en cliquant sur un lien dans une page Web. Le chemin du dossier est sur le réseau et peut être consulté de partout. Je suis probablement sûr qu'il n'y a pas de moyen facile de le faire, mais peut-être que je me trompe?Quelles sont les façons de faire un lien html ouvrir un dossier

+3

J'ai répondu ci-dessous; C'est une exigence courante des applications web d'entreprise qui est rendue presque impossible par une sécurité mal orientée (il devrait être possible d'activer les liens de fichiers dans les pages http de confiance). J'ai seulement testé intensivement sur Windows. –

Répondre

85

Voulez-vous ouvrir un dossier partagé dans l'Explorateur Windows? Vous devez utiliser un lien file:, mais il y a des mises en garde:

  • Internet Explorer ne fonctionnera que si le lien est un chemin UNC converti (file://server/share/folder/).
  • Firefox fonctionnera si le lien est dans sa propre forme mutilée en utilisant cinq barres obliques (file://///server/share/folder) et l'utilisateur a disabled the security restriction on file: links in a page served over HTTP. Heureusement, IE accepte également le formulaire de lien mutilé.
  • Opera, Safari et Chrome ne peuvent être convaincus d'ouvrir un lien file: dans une page diffusée via HTTP.
+4

dans IE uniquement si le chemin UNC et le site Web contenant le lien sont dans le même domaine, c'est-à-dire uniquement dans l'intranet. –

+4

Je pense que ce n'est plus correct - les versions plus récentes de IE semblent bloquer ce comportement tout comme Chrome/Safari/etc. – ZeekLTK

+1

J'ai juste essayé ceci dans IE 11 et vous pouvez en fait ouvrir un fichier local sans le télécharger (comme dans l'ouverture d'un chemin de fichier déjà existant). Cela n'existe toujours pas en chrome. – Hohohodown

4

assurez-vous que vos autorisations de dossier sont définies de sorte qu'une liste de répertoires est autorisé puis il suffit de pointer l'ancre dans ce dossier en utilisant chmod 701 (qui pourrait être risqué si) par exemple

<a href="./downloads/folder_i_want_to_display/" >Go to downloads page</a> 

assurez-vous que vous ne pas index.html aucun fichier d'index sur ce répertoire

+0

Cette réponse fonctionne. La partie "liste des répertoires autorisés" est très importante. Si ce n'est pas autorisé, vous pouvez l'activer, mais c'est différent pour chaque application serveur. – Travis

4

L'URL file://[servername]/[sharename] doit ouvrir une fenêtre d'exploration vers le dossier partagé sur le réseau.

+1

ne fonctionne pas dans le chrome, fonctionne dans IE – Muflix

2

L'utilisation de file: ///// ne fonctionne pas si les paramètres de sécurité sont définis sur un niveau modéré.

Si vous souhaitez simplement que les utilisateurs puissent télécharger/visualiser des fichiers * situés sur un réseau ou un partage, vous pouvez configurer un répertoire virtuel dans IIS. Dans l'onglet Propriétés, assurez-vous que "Un partage situé sur un autre ordinateur" est sélectionné et que "Connecter comme ..." est un compte qui peut voir l'emplacement du réseau.

Liez le répertoire virtuel à partir de votre page Web (par exemple, http://yoursite/yourvirtualdir/) et cela ouvrira une vue du répertoire dans le navigateur Web.

* Vous pouvez autoriser les autorisations d'écriture sur le répertoire virtuel pour permettre aux utilisateurs d'ajouter des fichiers sans les essayer et en supposant que les autorisations réseau remplacent ce paramètre.

+0

Ceci est pertinent aujourd'hui, car Chrome et les versions plus récentes d'Internet Explorer bloquent l'accès aux ressources file: // locales à partir de pages Web sans fichier. En outre, il peut être configuré pour s'exécuter dans IIS Express, mais il doit être ajouté et exécuté manuellement. – Schmuli

1

Vous pouvez également copier l'adresse du lien et le coller dans une nouvelle fenêtre pour contourner la sécurité. Cela fonctionne dans Chrome et Firefox, mais vous devrez ajouter des barres obliques dans Firefox.

Questions connexes