Struts 2自动打开.doc或.docx下载

时间:2011-06-20 14:00:04

标签: java download savefiledialog

可能是个问题,但我已经厌倦了谷歌搜索...

我正在开发一个Struts 2 Web App,它允许用户编辑存储在服务器上的.docx文件。例如,用户单击“编辑”,然后将文档发送给他/她。完成编辑后,更新的文件将返回服务器。

嗯,这就是主意。我使用Struts 2 result type="stream"并将contentDisposition设置为attachment。这显然为用户提供了“保存”对话框。 inline contentDisposition不是Word文件的选项 - 浏览器无论如何都不会加载它。

问题1:

有没有办法“静默”地将文件保存在客户?听起来像是对我的安全威胁 - 但我可能错了。

问题2:
接下来,如何在客户端上启动下载的.docx文件?再一次,我很怀疑它很容易完成(安全性和所有这些),但我也可能在这里错了。 :d

我知道只要下载的文档在Word中自动打开,用户就可以使用保存对话框。

任何想法都赞赏。

1 个答案:

答案 0 :(得分:4)

  

有没有办法“静默”将文件保存在客户端上?对我来说听起来像是一个安全威胁 - 但我可能错了。

不使用Struts2 / HTML / JS。您需要创建一个签名(!)applet,然后将该applet嵌入到网页中。


  

接下来,如何在客户端上启动下载的.docx文件?再一次,我很怀疑它很容易完成(安全性和所有这些),但我也可能在这里错了。

此外,请使用已签名的小程序。一旦您通过applet在客户端保存了File,那么就像

一样简单
Desktop.getDesktop().open(file);

只要客户端平台安装了MS Word并将doc(x)扩展名与MS Word相关联。


作为一个完全不同的替代方案,您还可以将MS Word文档转换为HTML,然后以纯HTML编辑形式(可以很容易地由JSP / Struts2生成)呈现它,然后在表单提交时将其转换回MS Word文档。这基本上也是Google文档正在做的事情。