Открытие ссылки на webdav с правильной программой на клиенте - PullRequest
4 голосов
/ 19 ноября 2008

У нас есть браузерное приложение, которое интегрирует сервер webdav. Мы генерируем URL-адреса для конкретных документов в нашем (webdav) сервлете. (https://server.com/webdav/path/to/file.doc)

То, что мы ищем, - это хороший способ для наших клиентов открыть эти ссылки непосредственно в соответствующей программе. И.Е. для пользователя Windows «https://server.com/webdav/path/to/excelfile.xls» должно открываться в MS Excel, тогда как эта же ссылка должна открывать OOCalc в Linux.

До сих пор мы использовали небольшой апплет, карты которого имеют расширения, ОС и программы и открывают программу через Runtime.getRuntime().exec(..). Этот подход работает несколько хорошо в Ms-Windows, но проблематичен для клиентов Linux и Mac, а также довольно негибок.

Есть ли лучший способ сделать это?

Ответы [ 4 ]

0 голосов
/ 24 октября 2013

В эти дни он отлично работает в 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

0 голосов
/ 11 сентября 2011

Если вы установили MIME-типы файлов в правильный формат, все браузеры должны иметь возможность обрабатывать их. Затем пользователь может решить выполнить действие по умолчанию для этого типа (открыть акробат, слово, Excel, блокнот) или выбрать пользовательское.

0 голосов
/ 13 марта 2013

К сожалению, апплет - пока единственное решение. Но в редких случаях мы используем "SharePoint.OpenDocuments" и 'application/x-sharepoint' плагины. Вы можете сравнить с вашим решением здесь .

0 голосов
/ 19 ноября 2008

Разве это не то, для чего был разработан класс java.awt.Desktop?

Я говорю «Предназначен для», потому что есть много вещей, которые он не делает хорошо или правильно, но он работает для некоторых вещей. В ней отсутствует опция «открыть с помощью», так как операционная система должна запросить у вас, для чего вам следует открыть документ, если для него ничего не зарегистрировано.

Он может интерпретировать URL-адрес как веб-URL, открыть браузер, а затем браузер может делегировать открытие файла? в этом случае вам нужно будет загрузить документ во временный файл, а затем использовать desktop.open?

...