【问题标题】:Struts 2 Automatically Open .doc or .docx On DownloadStruts 2 下载时自动打开 .doc 或 .docx
【发布时间】:2023-03-25 15:36:01
【问题描述】:

可能是一个愚蠢的问题,但我厌倦了谷歌搜索......

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

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

问题 1:

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

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

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

任何想法表示赞赏。

【问题讨论】:

    标签: java download savefiledialog


    【解决方案1】:

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

    不使用 Struts2/HTML/JS。您需要创建一个签名的(!)小程序来执行此操作,然后将该小程序嵌入网页中。


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

    同样在这里,使用签名的小程序。一旦您通过小程序将File 保存在客户端,就很简单了

    Desktop.getDesktop().open(file);
    

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


    作为一个完全不同的选择,您还可以将 MS Word 文档转换为 HTML,然后以纯 HTML 编辑表单(可以通过 JSP/Struts2 轻松生成)呈现,然后在表单提交时将其转换回MS Word 文档。这也是 Google 文档所做的基本工作。

    【讨论】:

    • 感谢您的帮助。这就是我所怀疑的。小程序不是我选择的技术。我回到用户那里,提出了一个简单的入住/退房系统。他们实际上很喜欢它,因为这使他们可以将文件带回家并在周末处理它们(真是可悲的一群!)。给定文档只有一个编辑器,因此版本控制没有问题。感谢您清理一切。
    猜你喜欢
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 2010-12-06
    • 2021-10-30
    • 1970-01-01
    相关资源
    最近更新 更多