我想要一个html文件来组织分散在我的硬盘驱动器中的某些文件。例如,我有两个要链接到的文件:
-
C:Programssort.mw
-
C:Videoslecture.mp4
问题是我希望链接充当文件的快捷方式。我尝试了以下方法:
<a href="C:Programssort.mw">Link 1</a>
<a href="C:Videoslecture.mp4">Link 2</a>
。但是第一个链接什么也不做,第二个链接在 Chrome 中打开文件,而不是 VLC。
我的问题是:
有没有办法调整我的 HTML 以将链接视为文件的快捷方式?
如果没有办法调整HTML,有没有其他方法可以整齐地链接到分散在整个硬盘驱动器中的文件?
我的电脑运行Windows 7,我的网络浏览器是Chrome。
如果要链接到本地文件,则需要使用file:///
协议(是的,这是三个斜杠(。
<a href="file:///C:Programssort.mw">Link 1</a>
<a href="file:///C:Videoslecture.mp4">Link 2</a>
这些永远不会自动在本地应用程序中打开文件。这是出于安全原因,我将在上一节中介绍。如果它打开,它将只会在浏览器中打开。如果您的浏览器可以显示该文件,它将显示该文件,否则它可能会询问您是否要下载该文件。
您不能从 http(s( 交叉到文件协议
许多浏览器的现代版本(例如Firefox和Chrome(将拒绝从http(s(协议跨越到文件协议,以防止恶意行为。
这意味着托管在某处网站上的网页将永远无法链接到硬盘驱动器上的文件。如果你想做这些事情,你需要使用文件协议在本地打开你的网页。
为什么没有file:///
就会卡住?
URL 的第一部分是协议。协议是几个字母,然后是一个冒号和两个斜杠。 HTTP://
和FTP://
是有效的协议; C:/
不是,我很确定它甚至不像一个。
C:/
也不是有效的网址。浏览器可能会认为它应该在指定空白端口的情况下http://c/
,但这会失败。
您的浏览器可能不会假定它引用的是本地文件。它没有理由做出这种假设,因为网页通常不会尝试链接到人们的本地文件。
因此,如果您想访问本地文件:告诉它使用文件协议。
为什么是三个斜杠?
因为它是文件 URI 方案的一部分。您可以选择在前两个斜杠后指定主机。如果您跳过指定主机,则只会假设您引用的是自己 PC 上的文件。这意味着file:///C:/etc
是file://localhost/C:/etc
的快捷方式。
这些文件仍将在您的浏览器中打开,这很好
您的浏览器将响应这些文件,就像它们在互联网上任何地方响应同一文件一样。这些文件不会在您的默认文件处理程序(例如 MS Word 或 VLC 媒体播放器(中打开,您将无法执行任何操作,例如要求文件资源管理器打开文件的位置。
这对您的安全来说是一件非常好的事情。
浏览器中的网站无法很好地与您的操作系统交互。如果一个好的站点可以告诉您的机器在VLC.exe中打开讲座.mp4那么恶意站点可以告诉它打开病毒.bat在CMD.exe中。或者它可以告诉你的机器运行一些卸载.exe文件或打开文件资源管理器一百万次。
这对您来说可能不方便,但 HTML 和浏览器安全性并不是真正为您正在做的事情而设计的。如果您希望能够在 VLC 中打开讲座.mp4.exe请考虑编写桌面应用程序。
如果您在PC上运行IIS,则可以将尝试访问的目录添加为虚拟目录。为此,您右键单击ISS中的站点,然后按"添加虚拟目录"。命名虚拟文件夹。将虚拟文件夹指向本地电脑上的文件夹位置。您还必须提供有权访问特定文件夹的凭据,例如。主机名\用户名和密码。之后,您可以像访问站点上的任何其他文件一样访问虚拟文件夹中的文件。
http://sitename.com/virtual_folder_name/filename.fileextension
顺便说一下,这也适用于不接受文件协议 file://
希望这对某人有所帮助:)
充其量
是简基
<a href="file://///server/folders/x/x/filename.ext">right click </a></td>
然后右键单击,选择"复制位置"选项,然后粘贴到URL。
回到2017年:
使用 URL.createObjectURL( 文件 ( 创建指向用户选择的文件系统的本地链接;
不要忘记使用 URL.revokeObjectURL(( 释放内存
我有这样的工作方式:
<'a href="FOLDER_PATH" target="_explorer.exe">Link Text<'/a>