如何在本地运行的网页上创建指向本地文件的链接?

Bri*_*ick 147 html anchor local-files

我想要一个html文件来组织分散在我的硬盘中的某些文件.例如,我有两个文件可以链接到:

  • C:\Programs\sort.mw
  • C:\Videos\lecture.mp4

问题是,我希望链接可以作为文件的快捷方式.我尝试过以下方法:

<a href="C:\Programs\sort.mw">Link 1</a>
<a href="C:\Videos\lecture.mp4">Link 2</a>
Run Code Online (Sandbox Code Playgroud)

...但第一个链接什么都不做,第二个链接在Chrome中打开文件,而不是VLC.

我的问题是:

  1. 有没有办法调整我的HTML将链接视为文件的快捷方式?

  2. 如果没有办法调整HTML,有没有其他方法可以整齐地链接到分散在整个硬盘中的文件?

我的电脑运行Windows 7,我的网络浏览器是Chrome.

dop*_*ner 243

file:///如果要链接到本地​​文件,则需要使用协议(是的,这是三个斜杠).

<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
Run Code Online (Sandbox Code Playgroud)

这些永远不会自动在本地应用程序中打开文件.这是出于安全原因,我将在最后一节介绍.如果它打开,它将只在浏览器中打开.如果您的浏览器可以显示该文件,它将会,否则它可能会询问您是否要下载该文件.

有些浏览器,比如现代版Chrome,甚至会拒绝从http协议到文件协议,所以你最好确保使用文件协议在本地打开它,如果你想要完成这些工作的话.

为什么没有被卡住file:///

URL的第一部分是协议.协议是几个字母,然后是冒号和两个斜杠.HTTP://并且FTP://是有效的协议; C:/不是,我很确定它甚至不像一个.

C:/也不是有效的网址.浏览器可以假设它意味着http://c/指定了一个空白端口,但这将失败.

您的浏览器可能不会认为它指的是本地文件.没有理由做出这个假设,因为公共站点通常不会尝试链接到人们的本地文件.

因此,如果您想访问本地文件:告诉它使用文件协议.

为什么三个斜线?

因为它是文件URI方案的一部分.您可以选择在前两个斜杠后指定主机.如果您跳过指定主机,它将假设您指的是您自己的PC上的文件.这意味着file:///C:/etc快捷方式file://localhost/C:/etc.

这些文件仍将在您的浏览器中打开,这很好

您的浏览器将以与在互联网上任何位置响应同一文件相同的方式响应这些文件.这些文件不会在您的默认文件处理程序(例如MS Word或VLC Media Player)中打开,您将无法执行任何操作,例如要求文件资源管理器打开文件的位置.

这对您的安全性来说是一件非常好的事情.

浏览器中的网站无法与您的操作系统进行良好的交互.如果一个好的网站可以告诉你的机器打开lecture.mp4VLC.exe,恶意网站可以告诉它打开virus.bat的CMD.exe.或者它可以告诉您的计算机运行一些Uninstall.exe文件或打开文件浏览器一百万次.

这可能对您不方便,但HTML和浏览器安全性并非真正针对您正在进行的操作而设计.如果您希望能够打开lecture.mp4VLC.exe考虑写一个桌面应用程序来代替.

  • 似乎Chrome无论如何都不会使用file:///协议下载本地文件(给你一个'不允许加载本地资源'错误) (21认同)
  • @Brian您的浏览器无法以这种方式与您的操作系统进行交互,您应该非常高兴它不能. (7认同)
  • 值得一提的是,您无法从网站(例如本地开发服务器)链接到本地​​文件.http://forums.mozillazine.org/viewtopic.php?f=9&t=1730 (5认同)

use*_*261 13

如果您在PC上运行IIS,则可以将尝试访问的目录添加为虚拟目录.要执行此操作,请右键单击ISS中的站点,然后按"添加虚拟目录".命名虚拟文件夹.将虚拟文件夹指向本地PC上的文件夹位置.您还必须提供具有访问特定文件夹的权限的凭据,例如.HOSTNAME \用户名和密码.之后,您可以像访问您网站上的任何其他文件一样访问虚拟文件夹中的文件.

http://sitename.com/virtual_folder_name/filename.fileextension

顺便说一句,这也适用于Chrome,否则不接受文件协议文件://

希望这有助于某人:)


Che*_*zer 6

Janky充其量

<a href="file://///server/folders/x/x/filename.ext">right click </a></td>
Run Code Online (Sandbox Code Playgroud)

然后右键单击,选择"复制位置"选项,然后粘贴到url中.

  • 我们被迫右键单击吗?有没有一种方法可以只左键单击它? (3认同)
  • 您是否找到了只需单击鼠标左键即可打开本地链接的方法? (2认同)