链接到Web应用程序中的本地内容

时间:2011-02-22 21:40:36

标签: html internet-explorer file hyperlink

我正在处理遗留应用程序的替换应用程序。由于遗留应用程序的某些设计限制,“附件”在我们的数据库中存储为String路径(通常是存储在Windows共享驱动器上的文件)。然后,遗留应用程序可以通过打开Windows命令shell并执行给定路径来“打开”附件。

传统(Oracle Forms)应用程序正逐步被基于JSF的J2EE Web应用程序淘汰。新应用程序需要能够以某种方式“打开”或链接到这些传统附件。这甚至可能吗?我试图使用file:// URL,但使用它们有很多警告。它们只能在IE中的远程主机上工作,firefox / chrome(以及我认为的其他现代浏览器)会阻止本地文件URL。

只能在IE上工作才能适应这一特定功能。我进一步遇到了带空格的文件路径问题。出于某种原因,如果IE遇到包含空格的文件路径,请说

C:\Documents and Settings\user123\My Documents\testing\someFile.txt

它拒绝打开该链接。浏览器会自动将空格('')替换为其编码'%20'的URL。

我正在尝试的关联链接如下:

<a href="file:///C:\Documents and Settings\user123\My Documents\testing\someFile.txt">link</a>

我有什么简单的东西吗?或者有更简单的方法吗?

我不太清楚要标记什么,所以请随意重新标记。

2 个答案:

答案 0 :(得分:7)

经过一些广泛的测试后,我得出了以下结论:

  • 只有IE会打开远程主机页面上的file://链接,其他浏览器会直接阻止它们,当用户点击它们时不会发生任何事情。
  • IE只会打开指向驻留在网络驱动器上的文件的file:// URL
    • 如果用户点击指向用户本地驱动器上的文件的file://链接,则不会发生任何错误,也不会出现错误。
  • 如果用户点击指向网络文件的file://链接,则会在浏览器中打开,如果可能的话。
  • 如果file:// url指向无效位置(未映射的网络驱动器,网络驱动器上的文件不存在),Windows将显示弹出错误。
  • 文件路径中的空格需要使用%20
  • 进行URL编码

希望这可以帮助其他人找到关于文件网址的信息。

答案 1 :(得分:-1)

如果你在文件的路径周围使用双引号(")(你可能需要将它们作为%22进行URL编码),那么完整路径的窗口就可以了:

<a href="file:///%22C:\Documents and Settings\user123\My Documents\testing\someFile.txt%22">link</a>