从链接打开本地文件夹

时间:2011-03-09 13:13:45

标签: javascript html javascript-events

如何通过点击任何链接打开本地文件夹视图?

我尝试了很多选项,比如

<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>

7 个答案:

答案 0 :(得分:37)

解决方案:启动可下载链接

以下适用于所有浏览器,但一如既往需要注意。

<强>背景

“URL快捷方式”取决于操作系统。由于环境之间缺乏标准,以下解决方案适用于MS Windows。

如果您需要Linux支持以下解决方案,请参阅此article *我与文章YMMV无关。

网址快捷方式有两种形式:

  1. 扩展名为.URL的文件是基于文本的。可以动态生成。

      

    [InternetShortcut]
      URL =文件:/// d:/

  2. 扩展名为.LNK的文件是二进制文件。它们可以动态生成,但需要iShelLinkInterface实现。默认的操作系统限制很复杂,这会限制IIS进程到达Shell。

  3. .URL是推荐的解决方案,因为动态生成在Web Languages / Frameworks中是可行的,并且允许KISS实现。


    <强>概览/回顾:

    1. 安全限制不允许您直接从页面打开路径/启动资源管理器(如@Pekka所述)。
    2. 外部托管的网站(不在您的本地计算机上)不允许使用默认安全权限下的file:/// ... uri。

    3. <强>解决方案:

      提供可下载的链接(.URL或.LNK)到资源。浏览器行为将在帖子结尾解释。

       选项1:生成.lnk文件并将其保存到服务器。由于.LNK文件的二进制特性,这不是推荐的解决方案,但预生成的文件应该是可行的。

       选项2:生成.url文件,并将其保存到服务器或动态生成     它。在我的情况下,我正在动态创建.URL文件。


      解决方案详情(.URL):

      1. 将.url添加到Web服务器中的可用MIME类型。

        对于IIS打开网站,选择MIME类型,并添加以下内容:

          

        文件名Extension = .url
          MIME类型:application / internet-shortcut

        Per @cremax ... 对于像Apache服务器上的Chrome这样的Webkit浏览器,将此代码添加到.htaccess或http.config:

          

        SetEnvIf Request_URI“.url $”requested_url = url Header add Content-Disposition“attachment”env = requested_url

      2. .url文件是一个格式如下的文本文件(同样,这可以动态生成)。

        文件内容:

          

        [InternetShortcut]
          URL =文件:/// d:

      3. 提供指向生成.url文件的脚本或文件本身的链接。

        如果您只是将.url文件上传到服务器,请将以下内容添加到您的HTML中:

        <a href="URIShortcut.url">Round-About Linking</a>


      4. 浏览器依赖行为

        Chrome :下载/保存file.url然后打开
          在Chrome中,可以通过选择“始终打开此类型的文件”选项来增强此行为。

        FireFox :下载/保存file.url然后打开

        Internet Explorer :点击“打开”直接进入目录(无需保存快捷方式)

          

        Internet Explorer具有首选行为,但Chrome和Firefox   至少是有用的。

答案 1 :(得分:28)

由于安全限制,所有现代浏览器都禁用了与本地资源的链接。

Firefox

  

出于安全考虑,Mozilla应用程序会阻止从远程文件到本地文件(和目录)的链接。这包括链接到硬盘驱动器上的文件,映射的网络驱动器上以及可通过统一命名约定(UNC)路径访问的文件。这可以防止许多不愉快的可能性,包括:

     
      
  • 通过检查默认安装路径允许站点检测操作系统
  •   
  • 允许网站利用系统漏洞(例如,Windows 95/98中的C:\ con \ con)
  •   
  • 允许网站检测浏览器偏好设置或读取敏感数据
  •   

for IE

  

Internet Explorer 6 Service Pack 1(SP1)不再允许从Internet区域浏览本地计算机。例如,如果Internet站点包含指向本地文件的链接,则当用户单击该链接时,Internet Explorer 6 SP1将显示空白页。以前版本的Windows Internet Explorer遵循指向本地文件的链接。

for Opera(在安全公告的背景下,我确信有一个更为规范的链接):

  

作为安全预防措施,Opera不允许网页链接到用户本地磁盘上的文件

答案 2 :(得分:4)

只有IE6-8 - 在JavaScript中有一个ActiveX解决方案来解决这个本地文件问题:

        function OpenImage(filePath)
        {
            var myshell = new ActiveXObject("WScript.shell");
            myshell.run(filePath, 1, true); 
        }

答案 3 :(得分:2)

你可以使用

<a href="\\computername\folder">Open folder</a>

在Internet Explorer中

答案 4 :(得分:2)

添加点击打开本地目录或本地文件到谷歌浏览器:

JFish222的解决方案有效(URL文件解决方案)

对于像Apache服务器上的Chrome这样的Webkid浏览器,只需添加.htaccess o http.config这段代码:

SetEnvIf Request_URI“.url $”requested_url = url 标题添加Content-Disposition“attachment”env = requested_url

通过url文件的第一个downlod,点击chromes downloadbar中的文件,然后选择“始终打开此文件”。

答案 5 :(得分:-1)

本地浏览器-网络浏览器扩展中的文件管理器可以解决Chrome问题

但仍然存在一些编码问题

答案 6 :(得分:-3)

URL指定要嵌入到iframe中的文档的URL。 可能的值:

绝对URL-指向另一个网站(例如src =“ http://www.example.com/default.htm”) 相对网址-指向网站中的文件(例如src =“ default.htm”)