使html链接打开文件夹的方法是什么


106

我需要通过单击网页内的链接来让应用程序的用户打开文件夹。文件夹的路径在网络上,可以从任何地方访问。我敢肯定没有简单的方法可以做到这一点,但也许我误会了?


4
我在下面回答了;这是企业Web应用程序的一个常见要求,由于安全性失误,该要求几乎变得不可能(应该可以在受信任的http页面中启用文件链接)。我只在Windows上进行了广泛的测试。
安德鲁·达菲

Answers:


107

是否要在Windows资源管理器中打开共享文件夹?您需要使用file:链接,但有一些警告:

  • 如果链接是转换后的UNC路径(file://server/share/folder/),则Internet Explorer将起作用。
  • 如果链接使用五个斜杠(file://///server/share/folder)以其自身的形式变形并且用户已禁用file:通过HTTP服务的页面中的链接的安全限制,则Firefox将起作用。值得庆幸的是,IE也接受错误的链接形式。
  • 无法说服Opera,Safari和Chrome浏览器file:在通过HTTP服务的页面中打开链接。

4
仅当UNC路径和包含链接的网站在同一域中时,才在IE中显示,也就是说,仅在Intranet中。
Stefan Steiger

4
我认为这已不再正确-IE的较新版本似乎像Chrome / Safari / etc一样阻止了此行为。
ZeekLTK 2014年

1
我只是在IE 11中尝试过,实际上您可以打开本地文件而无需下载它(就像打开一个已经存在的文件路径一样)。在chrome中仍然不存在。
Hohohodown

4
您可以通过LocalLinks Chrome扩展程序在Chrome中使用它 。感谢这个StackOverflow的答案
Zach Johnson

@Andrew Duffy,是否有任何文档说Google Chrome阻止了此行为?我想进一步了解
双关

7

该URL file://[servername]/[sharename]将打开一个浏览器窗口,指向网络上的共享文件夹。


4

确保设置了文件夹权限,以便允许目录列表,然后使用chmod 701将锚点指向该文件夹(例如,这可能会有风险)

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

确保您没有index.html该目录上的任何索引文件


这个答案有效。“允许目录列表”部分非常重要。如果不允许,则可以启用它,但是对于每个服务器应用程序,它都是不同的。
特拉维斯

3

如果将安全设置设置为中等级别,则无法使用file://///。

如果只希望用户能够下载/查看网络上的文件*或共享,则可以在IIS中设置虚拟目录。在“属性”选项卡上,确保选择了“位于另一台计算机上的共享”,并且“连接为...”是可以查看网络位置的帐户。

从您的网页链接到虚拟目录(例如http:// yoursite / yourvirtualdir /),这将在Web浏览器中打开该目录的视图。

*您可以允许对虚拟目录的写权限,以允许用户添加文件,但不能尝试添加文件,并假定网络权限将覆盖此设置。


这与今天有关,因为Chrome和IE的较新版本将阻止从非文件网页访问本地file://资源。此外,可以将其设置为在IIS Express中运行,尽管必须将其添加并手动运行。
Schmuli 2014年


1

您也可以复制链接地址并将其粘贴到新窗口中,以避开安全性。这适用于chrome和Firefox,但您可能必须在Firefox中添加斜杠。


1

晚会晚了一点,但我最近不得不自己解决这个问题,尽管稍有不同,但它可能仍会帮助情况与我自己相似的人。

我在笔记本电脑上使用xampp在Windows上运行纯本地网站应用程序。(我知道一个非常特定的环境)。在这种情况下,我使用html链接到php文件并运行:

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

这将打开本地Windows资源管理器窗口。


1
很有前途,但是当我在Firefox中运行此选项卡时,该选项卡挂起。(似乎正在搅动会话或其他内容,因为我可以访问其他站点,但是该站点似乎已挂起-甚至在其他选项卡中也是如此!)
Stephen R

我刚刚在Firefox中对其进行了测试,但是它可以为我工作,但是我无法指定要在其中打开的文件夹,它只能在php文件的根目录中打开。
卢卡斯·塔莱拉亚

0

希望有一天能对某人有所帮助。我当时正在制作一个小型POC,并遇到了这个问题。一个按钮,onClick显示文件夹的内容。以下是HTML,

<input type=button onClick="parent.location='file:///C:/Users/' " value='Users'>
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.