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

Buf*_*alo 1 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
Run Code Online (Sandbox Code Playgroud)

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

我尝试的相关链接如下:

<a href="file:///C:\Documents and Settings\user123\My Documents\testing\someFile.txt">link</a>
Run Code Online (Sandbox Code Playgroud)

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

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

Buf*_*alo 7

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

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

希望这有助于其他人在文件网址上查找信息.