web-dev-qa-db-fra.com

Quels sont les moyens de faire un lien HTML ouvrir un dossier

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 est accessible de partout. Je suis probablement sûr qu'il n'y a pas de moyen facile de faire cela, mais peut-être que je me trompe?

91

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

  • Internet Explorer fonctionnera si le lien est un chemin UNC converti (file://server/share/folder/).
  • Firefox fonctionnera si le lien est sous sa propre forme mutilée à l'aide de cinq barres obliques (file://///server/share/folder) et l'utilisateur a désactivé le restriction de sécurité sur les liens file: d'une page servie via HTTP . Heureusement, IE accepte également le formulaire de lien mutilé.
  • Opera, Safari et Chrome ne peuvent pas être convaincus d'ouvrir un lien file: dans une page affichée sur HTTP.
100
Andrew Duffy

L'URL file://[servername]/[sharename] devrait ouvrir une fenêtre de l'Explorateur dans le dossier partagé du réseau.

5

assurez-vous que vos autorisations de dossier sont définies de manière à ce qu'une liste de répertoires soit autorisée, puis pointez simplement votre ancre sur ce dossier à l'aide de chmod 701 (cela peut être risqué par exemple)

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

assurez-vous que vous n'avez pas index.html de fichier d'index dans ce répertoire

4
lock

L'utilisation de fichier: ///// ne fonctionne tout simplement pas si les paramètres de sécurité sont définis sur un niveau même modéré.

Si vous souhaitez simplement que les utilisateurs puissent télécharger/afficher les 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 l'option "Un partage situé sur un autre ordinateur" est sélectionnée et que "Connexion en tant que ..." est un compte permettant de voir l'emplacement du réseau.

Créez un lien vers le répertoire virtuel à partir de votre page Web (par exemple, http: // votre site/votrevirtualdir / ), ce qui ouvrira une vue du répertoire dans le navigateur Web.

* Vous pouvez autoriser les autorisations d'écriture sur le répertoire virtuel pour autoriser les utilisateurs à ajouter des fichiers, mais ne pas l'essayer et supposer que les autorisations réseau remplaceraient ce paramètre.

3
Bickie

Ne fonctionne pas dans Chrome, mais cette autre réponse suggère une solution via un plugin:

Google Chrome peut-il ouvrir des liens locaux?

2
luison

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

1
Wyrmwood

Un peu tard pour la soirée, mais j’ai dû résoudre ce problème moi-même récemment, bien que légèrement différent, cela pourrait quand même aider une personne dans des circonstances similaires à la mienne.

J'utilise xampp sur un ordinateur portable pour exécuter une application de site Web purement local sous Windows. (Un environnement très spécifique que je connais). Dans ce cas, j'utilise un lien HTML vers un fichier php et lance:

Shell_exec('cd C:\path\to\file');
Shell_exec('start .');

Cela ouvre une fenêtre Windows Explorer locale.

1
Lucas Taulealea