href =“file://”不起作用

时间:2012-10-11 10:02:34

标签: html file href

我有一个问题:     href="file://" 好吧,我想在html中指向一个链接文件,如果我像

那样写在浏览器中
 file:///K:/filename.pdf

它可以打开一个文件,但如果我指向它:

      href="http://file:///K:/AmberCRO%20SOP/2011-07-05/SOP-SOP-3.0.pdf" 

它不起作用。链接更改为:

file///K:/AmberCRO%20SOP/2011-07-05/SOP-SOP-3.0.pdf

文件后colon消失。有关做什么的任何建议?

4 个答案:

答案 0 :(得分:8)

您的网址被重写为file///K:/AmberCRO%20SOP/2011-07-05/SOP-SOP-3.0.pdf的原因是您指定了http://file://

开头的http://是正在使用的协议,而您的浏览器正在剥离第二个冒号(:),因为它无效。

注意

如果您链接到类似

的内容
<a href="file:///K:/yourfile.pdf">yourfile.pdf</a>

以上代表指向您正在查看网址的计算机上的k:驱动器上名为k:/yourfile.pdf的文件的链接。

您可以执行此操作,例如,下面会创建指向C:\temp\test.pdf

的链接
<a href="file:///C:/Temp/test.pdf">test.pdf</a>

通过指定file://,您指示这是本地资源。此资源不在互联网上。

大多数人没有K:/驱动器。

但是,如果这是你想要实现的目标,那很好,但这并不是网页上“典型”链接的工作原理,除非每个人都要访问你的网页,否则你不应这样做link可以访问(相同的?)K:/驱动器(这可能是共享网络驱动器的情况)。

你可以尝试

<a href="file:///K:/AmberCRO-SOP/2011-07-05/SOP-SOP-3.0.pdf">test.pdf</a>
<a href="AmberCRO-SOP/2011-07-05/SOP-SOP-3.0.pdf">test.pdf</a>
<a href="2011-07-05/SOP-SOP-3.0.pdf">test.pdf</a>

请注意,http://file:///K:/AmberCRO%20SOP/2011-07-05/SOP-SOP-3.0.pdf格式不正确

答案 1 :(得分:0)

%20是AmberCRO SOP之间的空间。

尝试 -

href="http://file:///K:/AmberCRO SOP/2011-07-05/SOP-SOP-3.0.pdf"

或者将文件夹重命名为AmberCRO-SOP并将其写为 -

href="http://file:///K:/AmberCRO-SOP/2011-07-05/SOP-SOP-3.0.pdf"

答案 2 :(得分:0)

为“所有人”或某个特定群组共享您的文件夹并尝试以下操作:

<a href="file://YOURSERVERNAME/AmberCRO%20SOP/2011-07-05/SOP-SOP-3.0.pdf"> Download PDF </a> 

答案 3 :(得分:0)

尽管ffile:////..exe曾经可以工作(例如-早期html 4的某些版本),但似乎html 5不允许这样做。 经过以下测试:

<a href="ffile:///<path name>/<filename>.exe" TestLink /a> 
<a href="ffile://<path name>/<filename>.exe" TestLink /a> 
<a href="ffile:/<path name>/<filename>.exe" TestLink /a> 
<a href="ffile:<path name>/<filename>.exe" TestLink /a> 
<a href="ffile://///<path name>/<filename>.exe" TestLink /a> 
<a href="file://<path name>/<filename>.exe" TestLink /a> 
<a href="file:/<path name>/<filename>.exe" TestLink /a> 
<a href="file:<path name>/<filename>.exe" TestLink /a> 
<a href="ffile://///<path name>/<filename>.exe" TestLink /a>

以及... 1 /用“文件”代替“ ffile” 2 /以上所有变体,均在ffile或文件前加上http://。

我能看到的最好的情况是,如果有人想打开(编辑)或保存文件,就可以实现。但是,该exec文件将不会执行。