我想有一个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.2.如果没有办法调整HTML,是否有其他方法可以整齐地链接到分散在硬盘上的文件?
我的电脑运行Windows 7,我的网络浏览器是Chrome。
如果你想链接到本地文件,你需要使用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/
,并指定一个空白端口,但这将会失败。
你的浏览器可能不会认为它是指一个本地文件。它没有理由做出这种假设,因为公共网站通常不会试图链接到人们的本地文件。
因此,如果你想访问本地文件:告诉它使用文件协议。
因为它是[文件URI方案](http://en.wikipedia.org/wiki/File_URI_scheme)的一部分。你可以选择在前两个斜线之后指定一个主机。如果你不指定主机,它就会认为你指的是你自己电脑上的一个文件。这意味着`file://C:/etc`是`file://localhost/C:/etc`的一个快捷方式。
你的浏览器对这些文件的反应和对互联网上任何地方的相同文件的反应一样。这些文件不会在你的默认文件处理程序(如MS Word或VLC媒体播放器)中打开,而且你不会做任何事情,如要求文件浏览器打开文件的位置。
这对你的安全来说是一件非常好的事情。
浏览器中的网站不能与你的操作系统很好地互动。如果一个好的网站可以告诉你的机器在VLC.exe中打开lecture.mp4,一个恶意的网站可以告诉它在CMD.exe中打开virus.bat。或者它可以告诉你的机器运行几个Uninstall.exe文件或打开文件资源管理器一百万次。
这对你来说可能并不方便,但HTML和浏览器的安全性并不是真正为你所做的事情而设计的。如果你想在VLC.exe中打开lecture.mp4,可以考虑编写一个桌面应用程序来代替。
如果你在你的电脑上运行IIS,你可以把你试图到达的目录添加为一个虚拟目录。 要做到这一点,你可以在ISS的网站上点击右键,然后按"添加虚拟目录"。 给虚拟文件夹命名。将虚拟文件夹指向你本地电脑上的文件夹位置。 你还必须提供具有访问特定文件夹权限的凭证,例如:HOSTNAME/用户名和密码。 之后,你就可以像访问你网站上的任何其他文件一样访问虚拟文件夹中的文件。
http://sitename.com/virtual_folder_name/filename.fileextension
顺便说一下,这也适用于Chrome浏览器,否则不接受文件协议file://。
希望这对大家有帮助 :)