小编典典

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

html

我想要一个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>

…但是第一个链接不执行任何操作,第二个链接在Chrome中而不是VLC中打开文件。

我的问题是:

  1. 有没有一种方法可以调整我的HTML,以将链接视为文件的快捷方式?

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

我的计算机运行Windows 7,网络浏览器是Chrome。


阅读 2195

收藏
2020-05-10

共1个答案

小编典典

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

<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>

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

某些浏览器,例如现代版本的Chrome,甚至会拒绝从http协议转换为文件协议,因此,如果您想做所有这些事情,最好确保使用文件协议在本地打开它。

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

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

C:/也不是有效的网址。浏览器可能会认为它http://c/指定了一个空白端口,但这将失败。

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

因此,如果要访问本地文件:告诉它使用文件协议。

为什么三个斜杠?

因为它是File URIscheme的一部分。您可以选择在前两个斜杠后指定主机。如果您跳过指定主机,则仅假设您正在引用自己PC上的文件。这file:///C:/etc是的捷径file://localhost/C:/etc

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

您的浏览器将对这些文件的响应与对Internet上任何地方的相同文件的响应相同。这些文件 将不会 在默认文件处理程序(例如MS Word或VLCMedia Player)中打开,并且您 将无法 执行任何操作,例如要求File Explorer打开文件的位置。

对于您的安全而言,这是一件非常好的事情。

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

这可能对您来说并不方便,但是HTML和浏览器的安全性并不是真正针对您的工作而设计的。如果您希望能够打开 lecture.mp4 在 _VLC.exe_考虑编写一个桌面应用程序来代替。

2020-05-10