使用file://在网页中打开本地文件

时间:2009-05-24 04:37:45

标签: javascript internet-explorer

我有一个用户填写的表单(jsp页面)。其中一个输入是“file”类型。有一个预览按钮,它会弹出一个新窗口并使用javascript来布局填充的表格以供显示。 “文件”输入将显示为超链接,当用户单击超链接时,它应该打开附件。所以如果你附上pdf,我希望当我点击超链接时,foxit阅读器会打开。如果是文本文件,记事本将打开。

我尝试使用file://但似乎没有发生任何事情。它似乎是MSIE中的一个安全功能,file://协议被锁定。

如何在没有(ActiveX,ajax)的情况下实现此功能?

1 个答案:

答案 0 :(得分:3)

file://仅指向用户计算机上的本地文件系统,并且通常受到更多锁定安全措施的约束。它根本不能依赖于浏览器甚至允许file://协议访问。

安全地执行所需操作的唯一方法是使用文件完全提交表单,并使用服务器端语言(PHP,ASP.NET,Rails,Django,请选择)来呈现带有'的页面漂亮的'表单数据的布局以及文档的预览。这就是论坛的工作方式,你点击“预览”按钮,你的帖子被提交给服务器,服务器呈现它以供你批准,你批准它,它被保存到数据库并发布。如果您不批准它,它将被丢弃,并且永远不会进入数据库。

如果您不希望用户离开页面,您可以将其转换为验证并执行AJAX回发。有一些javascript库专门用于像这样静默地序列化和传输表单,然后返回结果。 JQuery Forms就是一个很好的例子(注意:需要JQuery)。