2008-11-19 8 views
4

Nous avons une application basée sur un navigateur qui intègre un serveur webdav. Nous générons des URL vers des documents spécifiques sur notre servlet (webdav). (https://server.com/webdav/path/to/file.doc)Ouverture du lien webdav avec le programme correct sur le client

Ce que nous recherchons, c'est un bon moyen pour nos clients d'ouvrir ces liens directement dans le programme approprié. C'EST À DIRE. pour un utilisateur Windows, "https://server.com/webdav/path/to/excelfile.xls" devrait s'ouvrir dans MS Excel, tandis que le même lien devrait ouvrir OOCalc sous Linux. Jusqu'ici, nous avons utilisé une petite applet qui a des extensions, des systèmes d'exploitation et des programmes et ouvre le programme par Runtime.getRuntime().exec(..). Cette approche fonctionne plutôt bien sur MS-Windows mais est problématique sur les clients Linux et mac et est également assez rigide.

Existe-t-il une meilleure façon de procéder?

+0

Le javascript trouvé dans ma réponse à cette question http://stackoverflow.com/questions/6792960/editing-ms-office-documents-from-a-web -application-custom-webdav-implementation/6847137 # 6847137 peut vous être utile, ainsi que le commentaire qui l'accompagne. Fondamentalement, le client décide quoi faire avec le fichier. Malheureusement, je n'ai aucune aide pour le côté Linux/Mac. –

Répondre

0

N'est-ce pas là que la classe java.awt.Desktop a été conçue?

Je dis "Conçu pour" parce qu'il y a beaucoup de choses qui ne fonctionnent pas bien ou pas, mais cela fonctionne pour certaines choses. Il manque l'option pour "ouvrir avec", comme le système d'exploitation doit vous demander ce que vous devez ouvrir un document avec s'il n'y a rien enregistré pour cela.

Il peut interpréter l'URL comme une URL Web, ouvrir le navigateur, puis le navigateur peut déléguer l'ouverture du fichier? Dans ce cas, vous devez télécharger le document dans un fichier temporaire, puis utiliser desktop.open?

+0

'Java.awt.Desktop' n'a malheureusement pas aidé. ceci jette des exceptions dans l'applet pour ne pas trouver le 'fichier'. Aussi, je doute qu'il ouvrirait le bon programme, compte tenu des utilisations de WebDav. HTTP (S).fichier temporaire n'est pas non plus une option car cela interférerait avec le processus de sauvegarde (nous voulons que nos clients éditent ces documents 'directement' sur nos serveurs.) – pvgoddijn

0

Si vous définissez les types MIME des fichiers au format approprié, tous les navigateurs devraient être capables de les gérer. L'utilisateur peut alors décider de prendre l'action par défaut pour ce type (ouvrir acrobat, word, excel, bloc-notes) ou en choisir un personnalisé.

0

Malheureusement applet est la seule solution pour l'instant. Mais dans de rares cas, nous utilisons "SharePoint.OpenDocuments" et 'application/x-sharepoint' plugins. Vous pouvez comparer avec votre solution here.

0

Cela fonctionne très bien dans Internet Explorer 10/11 ces jours-ci. Mais vous devrez ajouter une clé de registre pour permettre à Office d'ouvrir les documents transmis depuis un navigateur en lecture/écriture. La clé de Registre est la suivante:

Bureau 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)

Voir cet article pour plus d'informations sur la configuration de la touche: http://social.technet.microsoft.com/Forums/office/en-US/06fedd90-4889-45ca-949d-60b76d74dd15/ms-word-open-document-readonly-with-WebDAV

+0

intéressant d'entendre, savez-vous si c'est un navigateur déjà? (la plupart des utilisateurs travaillent sur chrome ces jours-ci) – pvgoddijn

+0

@pvgoddijn Out of the box, no. c'est-à-dire que Firefox télécharge sur le disque local puis l'envoie, de sorte que Office ne voit même pas l'URL WEBDAV. Toutefois, si vous configurez un URI local, similaire à SharePoint Designer, il fonctionne avec tous les navigateurs. – Brain2000

+0

merci pour l'info (mais ce ne serait pas une option parce que nous ne pouvons pas permettre à ces documents d'être mis en sécurité dans un dossier temporaire en raison de problèmes de sécurité). Il pourrait être utile pour d'autres si – pvgoddijn

Questions connexes