2008-11-19 89 views
4

我們有一個基於瀏覽器的應用程序,它集成了一個webdav服務器。我們爲我們的(webdav)servlet上的特定文檔生成URL。 (https://server.com/webdav/path/to/file.doc用客戶端上正確的程序打開webdav鏈接

我們正在尋找的是我們的客戶直接在適當的程序中直接打開這些鏈接的好方法。 I.E.對於Windows用戶,「https://server.com/webdav/path/to/excelfile.xls」應該在MS Excel中打開,而相同的鏈接應該在Linux上打開OOCalc。

到目前爲止,我們一直在使用映射有擴展名,操作系統和程序的小程序,並通過Runtime.getRuntime().exec(..)打開程序。這種方法在Ms-Windows上可以正常工作,但在Linux和Mac客戶端上存在問題,並且也非常不靈活。

有沒有更好的方法來做到這一點?

+0

在我對此問題的答案中找到的JavaScript http://stackoverflow.com/questions/6792960/editing-ms-office-documents-from-a-web -application-custom-webdav-implementation/6847137#6847137可能會有所幫助,並附帶與它一起發表的評論。基本上,客戶決定如何處理文件。不幸的是,在Linux/Mac方面我沒有任何幫助。 – 2011-08-12 17:50:55

回答

0

這不就是java.awt.Desktop類的設計目的嗎?

我說「爲...而設計」是因爲有很多事情做得不好或不正確,但它確實適用於某些事情。它缺少「打開方式」的選項,就像操作系統必須在沒有任何註冊的情況下提示您應該打開文檔。

它可能會將url解釋爲網址,打開瀏覽器,然後瀏覽器可能委託打開文件?在這種情況下,您必須將文檔下載到臨時文件,然後使用desktop.open?

+0

`Java.awt.Desktop`不幸的是沒有幫助。這會在applet中拋出異常,導致無法找到'文件'。考慮到WebDav的使用,我也懷疑它會打開正確的程序。 HTTP(S)。臨時文件也不是一個選項,因爲這會干擾保存過程 (我們希望我們的客戶在我們的服務器上直接編輯這些文檔。) – pvgoddijn 2008-11-20 09:06:05

0

如果您將文件的MIME類型設置爲正確的格式,所有瀏覽器都應該能夠處理它們。然後用戶可以決定採取該類型的默認操作(打開acrobat,word,excel,記事本)或選擇一個自定義的操作。

0

不幸的是小程序是現在唯一的解決方案。但在極少數情況下,我們使用"SharePoint.OpenDocuments"'application/x-sharepoint'插件。您可以與您的解決方案here進行比較。

0

這些天它在Internet Explorer 10/11中效果很好。但是,您必須添加一個註冊表項,以便Office能夠以瀏覽/打開的方式打開從瀏覽器傳來的文檔。該註冊表項如下:

辦公室2013:

HKEY_CURRENT_USER \軟件\微軟\辦公室\ 15.0 \ COMMON \網絡\ 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

+0

intresting聽到,你知道這是否是交叉瀏覽器嗎? (這些天大部分外出用戶都在使用chrome) – pvgoddijn 2013-10-28 14:05:28

相關問題