我们有一个基于浏览器的应用程序,它集成了webdav服务器。我们在(webdav)servlet上生成特定文档的URL。 (https://server.com/webdav/path/to/file.doc
)
我们正在寻找的是我们的客户直接在适当的计划中打开这些链接的好方法。 I.E.对于Windows用户,“https://server.com/webdav/path/to/excelfile.xls
”应该在MS Excel中打开,而同一个链接应该在Linux上打开OOCalc。
到目前为止,我们一直在使用一个小applet,它映射了扩展,操作系统和程序,并通过Runtime.getRuntime().exec(..)
打开程序。这种方法在Ms-Windows上运行得有点好,但在Linux和Mac客户端上存在问题,并且也非常不灵活。
有没有更好的方法呢?
答案 0 :(得分:0)
这不是java.awt.Desktop类的设计目的吗?
我说“专为”而设计,因为有很多东西它做得不好或不正确,但它确实适用于某些事情。它缺少“打开方式”的选项,就像操作系统必须提示你应该打开一个文件,如果没有注册的话。
它可能会将网址解释为网址,打开浏览器,然后浏览器可能会委托打开文件?在这种情况下,您必须将文档下载到临时文件,然后使用desktop.open?
答案 1 :(得分:0)
如果您将文件的MIME类型设置为正确的格式,则所有浏览器都应该能够处理它们。然后,用户可以决定对该类型采取默认操作(打开acrobat,word,excel,记事本)或选择自定义操作。
答案 2 :(得分:0)
不幸的是,applet是目前唯一的解决方案。但在极少数情况下,我们会使用"SharePoint.OpenDocuments"
和'application/x-sharepoint'
个插件。您可以与解决方案here进行比较。
答案 3 :(得分:0)
这些天在Internet Explorer 10/11中运行良好。但是您必须添加一个注册表项才能允许Office以读/写方式打开从浏览器传递的文档。注册表项如下:
Office 2013:
HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 15.0 \ Common \ Internet \ OpenDocumentsReadWriteWhileBrowsing = 0x1(DWORD)
Office 2010:
HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 14.0 \ Common \ Internet \ OpenDocumentsReadWriteWhileBrowsing = 0x1(DWORD)
有关设置密钥的信息,请参阅此文章: http://social.technet.microsoft.com/Forums/office/en-US/06fedd90-4889-45ca-949d-60b76d74dd15/ms-word-open-document-readonly-with-WebDAV