file:///
如果要链接到本地文件,则需要使用协议(是的,这是三个斜线)。
<a href="file:///C:\Programs\sort.mw">Link 1</a>
<a href="file:///C:\Videos\lecture.mp4">Link 2</a>
这些将永远不会自动在您的本地应用程序中打开文件。这是出于安全原因,我将在最后一节中介绍。如果它打开,它只会在浏览器中打开。如果您的浏览器可以显示该文件,它就会显示,否则它可能会询问您是否要下载该文件。
您不能从 http(s) 跨到文件协议
许多浏览器的现代版本(例如 Firefox 和 Chrome)将拒绝从 http(s) 协议跨到文件协议以防止恶意行为。
这意味着托管在某个网站上的网页将永远无法链接到您硬盘上的文件。如果你想要做这些事情,你需要使用文件协议在本地打开你的网页。
为什么没有它会卡住file:///
?
URL 的第一部分是协议。协议是几个字母,然后是一个冒号和两个斜杠。HTTP://
并且FTP://
是有效的协议;C:/
不是,我很确定它甚至不像一个。
C:/
也不是有效的网址。浏览器可能会假设它http://c/
指定了一个空白端口,但这会失败。
您的浏览器可能不会假定它指的是本地文件。几乎没有理由做出这种假设,因为网页通常不会尝试链接到人们的本地文件。
所以如果你想访问本地文件:告诉它使用文件协议。
为什么是三个斜线?
因为它是File URI scheme的一部分。您可以选择在前两个斜杠之后指定主机。如果您跳过指定主机,它只会假定您指的是您自己 PC 上的文件。这意味着file:///C:/etc
是file://localhost/C:/etc
.
这些文件仍将在您的浏览器中打开,这很好
您的浏览器将响应这些文件,就像它们响应 Internet 上任何地方的相同文件一样。这些文件不会在您的默认文件处理程序(例如 MS Word 或 VLC 媒体播放器)中打开,并且您将无法执行任何操作,例如让文件资源管理器打开文件的位置。
这对您的安全来说是一件非常好的事情。
您浏览器中的站点无法与您的操作系统很好地交互。如果一个好的站点可以告诉您的机器在 VLC.exe 中打开Lecture.mp4 ,那么恶意站点可以告诉它在CMD.exe中打开virus.bat。或者它可能只是告诉您的机器运行几个Uninstall.exe文件或打开文件资源管理器一百万次。
这对您来说可能不方便,但 HTML 和浏览器安全性并不是真正为您正在做的事情而设计的。如果您希望能够在VLC.exe 中打开 Lecture.mp4 ,请考虑编写一个桌面应用程序。