【问题标题】:href="file://" doesn't workhref="file://" 不起作用
【发布时间】:2012-10-01 23:13:50
【问题描述】:

我有一个问题: 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。有什么建议吗?

【问题讨论】:

  • 你在做什么,指向href="http://file:///K:/AmberCRO%20SOP/2011-07-05/SOP-SOP-3.0.pdf"?无效!
  • 建议?将您的文件与您的网页相关联。 <a href="files/filename.pdf"> 并将您的文件存储到 files/ 文件夹中。例如
  • http 是一个指向网络资源的协议,同样是file 指向一个本地资源 - 你不能在 href 中同时使用两者。

标签: html file href


【解决方案1】:

虽然 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”替换为“file” 2/ 以上所有变体都在 ffile 或文件之前加上 http:// 前缀。

我能看到的最好的情况是,如果想要打开(编辑)或保存文件,它是可以完成的。但是,exec 文件将不会执行。

【讨论】:

    【解决方案2】:

    为“每个人”或某个特定组共享您的文件夹,然后试试这个:

    &lt;a href="file://YOURSERVERNAME/AmberCRO%20SOP/2011-07-05/SOP-SOP-3.0.pdf"&gt; Download PDF &lt;/a&gt; 

    【讨论】:

    • 技术上应该是file://///YOURSERVERNAMEfile:// 是协议位,/ 是根,//YOURSERVERNAME 是服务器的网络地址-thingy-that-I-can't-remember-the-name-of。跨度>
    【解决方案3】:

    您的 URL 被重写为 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:/yourfile.pdf 的文件,该文件位于您正在查看URL 的机器 上的k: 驱动器上。

    你可以这样做,例如下面创建一个指向C:\temp\test.pdf的链接

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

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

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

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

    你可以试试

    <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 格式错误

    【讨论】:

      【解决方案4】:

      %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"
      

      【讨论】:

      • @Touki 我猜 FireFox 在您打开硬盘上的本地文件时会添加 file:///
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-16
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多