2009-05-24 216 views
2

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

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

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

回答

3

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

安全地做你想做的事情的唯一方法是用文件完全提交表单并使用服务器端语言(PHP,ASP.NET,Rails,Django,随便选择)渲染一个包含'漂亮'的表单数据布局以及文档预览。这就是论坛的做法,你点击“预览”按钮,你的文章被提交给服务器,服务器呈现它供你批准,你批准它,并保存到数据库并发布。如果您不批准它,它会被丢弃并且永远不会将其传送到数据库。

如果你不想让用户离开页面,你可以将它滚动到你的验证中,并做一个AJAX回发。有一些javascript库专门用于像这样静静地序列化和传输表单,然后返回结果。 JQuery Forms就是一个很好的例子(注意:需要JQuery)。

+0

我想他是指在用户上传文件之前。喜欢检查它的正确文件。因此,如果他们说输入他们想要上传“C:/MyTextdocument.txt”本身,他想打开“file:// c:/MyTextdocument.txt”,我希望工作?因为用户已经指定了文件的本地路径。 – Sphvn 2010-07-16 02:43:39