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