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

标签 html internet-explorer file hyperlink

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

遗留 (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>

我缺少一些简单的东西吗?或者有更简单的方法吗?

我不太确定要标记什么,所以可以根据需要随意重新标记。

最佳答案

经过大量测试后,我得出以下结论:

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

希望这可以帮助正在寻找文件 URL 信息的其他人。

关于html - 链接到 Web 应用程序中的本地内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5084312/

相关文章:

java - 使用 selenium Webdriver 和 java 等待表完全加载

ajax - node.js:在成功验证 get 请求后提供文件(特别是 apk)

c - 在文件解析中使用 fgets()

php - HTML 文本区域对齐

html - 边距/填充是否可以作为内联 CSS 接受?

javascript - 如何在列表中的 ng-options 上预选多行

php - default.ctp 中的 CakePHP 2 IE 条件 CSS

Excel VBA - 从网页中提取数据

支持 IE10/11 的 CSS Grid 语法

Java - 文件保存不起作用