从链接打开本地文件夹
如何通过点击任何链接打开本地文件夹视图?
我尝试了很多选项
<a href="file:///D:/Tools/">Open folder</a>
或
<a onclick="file:///D:/Tools/">Open folder</a>
或
<a onclick="window.open(file:///D:/Tools/)">Open folder</a>
由于安全限制,所有现代浏览器都禁用链接到本地资源。
对于Firefox :
为了安全起见,Mozilla应用程序阻止从远程文件到本地文件(和目录)的链接。 这包括链接到硬盘上的映射networking驱动器上的文件,并可通过统一命名约定(UNC)path访问。 这可以防止一些不愉快的可能性,包括:
- 允许网站通过检查默认安装path来检测您的操作系统
- 允许网站利用系统漏洞(例如Windows 95/98中的C:\ con \ con)
- 允许网站检测浏览器首选项或读取敏感数据
对于IE :
Internet Explorer 6 Service Pack 1(SP1)不再允许从Internet区域浏览本地计算机。 例如,如果Internet站点包含指向本地文件的链接,则当用户单击该链接时,Internet Explorer 6 SP1将显示一个空白页面。 以前版本的Windows Internet Explorer跟随到本地文件的链接。
对于歌剧 (在安全咨询的背景下,我确信有一个更加规范的链接):
为了安全起见,Opera不允许网页链接到用户本地磁盘上的文件
解决scheme:启动一个可下载的链接
以下在所有浏览器中都能正常工作,但是一如既往的警告。
背景:
“URL快捷方式”取决于操作系统。 以下解决scheme适用于MS Windows,因为环境之间缺乏标准。
如果您需要linux支持下面的解决scheme,请参阅这篇文章 。
*我与文章YMMV没有关系。
url快捷方式有两种forms:
-
带有.URL扩展名的文件是基于文本的。 可以dynamic生成。
[InternetShortcut]
URL =文件:/// d:/ -
.LNK扩展名的文件是二进制文件。 它们可以dynamic生成,但需要iShelLinkInterface实现者。 这是由默认的操作系统限制,这正确地阻止一个IIS进程到达壳牌复杂。
.URL是推荐的解决scheme,因为dynamic生成在Web语言/框架中是可行的,并且允许KISS实现。
概述/回顾:
- 安全性限制不允许您直接从页面打开path/启动浏览器(如@Pekka所述)。
- 外部托pipe的站点(不在本地计算机上)不允许file:/// … uri在默认安全权限下。
解:
提供可下载的链接(.URL或.LNK)到资源。 浏览器的行为将在后期解释。
选项1:生成一个.lnk文件并将其保存到服务器。 由于.LNK文件的二进制属性,这不是推荐的解决scheme,但是预生成的文件应该是可行的。
选项2:生成.url文件并将其保存到服务器或dynamic生成。 在我的情况下,我dynamic创build.URL文件。
解决scheme详细信息(.URL):
-
将.url添加到您的Web服务器中可用的MIMEtypes。
对于IIS打开站点,请select“MIMEtypes”,然后添加以下内容:
文件扩展名= .url
MIMEtypes:application / internet-shortcutPer @cremax …对于Webkit浏览器(如Apache服务器上的Chrome),将此代码添加到.htaccess或http.config:
SetEnvIf Request_URI“.url $”requested_url = url Header add Content-Disposition“attachment”env = requested_url
-
.url文件是一个文本文件格式如下(同样,这可以dynamic生成)。
文件内容:
[InternetShortcut]
URL =文件:/// d: -
提供一个链接到生成.url文件的脚本或文件本身。
如果您只是将.urlfile upload到服务器,请将以下内容添加到HTML中:
<a href="URIShortcut.url">Round-About Linking</a>
浏览器依赖行为
Chrome :下载/保存file.url然后打开
在Chrome中,可以通过select“始终打开此types的文件”选项来增强此行为。
FireFox :下载/保存file.url然后打开
Internet Explorer :点击“打开”直接进入目录(不需要保存快捷方式)
Internet Explorer具有首选的行为,但Chrome和Firefox至less可以使用。
只有IE6-8 – 有一个ActiveX解决方法这个JavaScript的本地文件问题:
function OpenImage(filePath) { var myshell = new ActiveXObject("WScript.shell"); myshell.run(filePath, 1, true); }
您可以使用
<a href="\\computername\folder">Open folder</a>
在Internet Explorer中
添加点击打开本地目录o本地文件到谷歌浏览器:
JFish222的解决scheme(URL文件解决scheme)
对于像Apache这样的Web服务器浏览器,只需在http.config中添加.htaccess这个代码:
SetEnvIf Request_URI“.url $”requested_url = url Header add Content-Disposition“attachment”env = requested_url
通过你的url文件的第一个下载点击chromes下载栏中的文件,并select“总是打开这个文件”。