[PHP] .doc document op een WebDAV dir open om te bewerken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • joggie
  • Registratie: November 2004
  • Laatst online: 03-02 15:00

joggie

Wie niet gek is, is saai

Topicstarter
Hallo,

Vanuit een webapplicatie gemaakt in PHP ben ik bezig met functionaliteit om een Word document vanaf de server te openen, waarna deze door een gebruiker bewerkt kan worden. Resultaat van het klikken op "Opslaan" is dat het document weer op de server opgeslagen wordt. Een standaard document mutatie dus.

Het idee is om dit middels Webdav te realiseren. Randvoorwaarde is namelijk dat er aan de client kant niets geinstalleerd mag worden (dit kan ook niet).

Installatie voor een proef opstelling is allemaal prima gelukt (Apache webserver op een Linux systeem en een MySQL database. WebDAV is standaard meegeinstalleerd bij Apache en was dus direct beschikbaar). Het is niet de bedoeling dat de gebruiker via "open website als map" door de directory kan browsen.

Het probleem wat nu ik heb, is dat bij het openen van een document, via de browser, dit altijd in alleen-lezen gebeurd. Dit is dus bij het bewerken, en vervolgens willen opslaan van de wijzigingen erg lastig! Wanneer je vanuit Word de URL van het document invuld, dan wordt het document niet alleen-lezen geopend, en is dus al wat gewenst is mogelijk.

Wanneer je Word het bestand laat openen, dan treed Word op als WebDAV client, en weet dan ook zelf de benodigde headers heen en weer te sturen die het schrijven van en naar mogelijk maakt. Wanneer via de browser het document naar Word gestuurd word, dan werkt dit kennelijk niet.

Heeft iemand enig idee naar een oplossing van bovenstaande situatie? Zelf denk ik dat een oplossing kan zijn door het initiatief van het document bij Word neer te leggen, echter weet ik niet hoe ik dit kan aanpakken. Aan de client kant zijn namelijk geen aanpassingen mogelijk (dus VB scripts of dergelijke zijn een no-go).

Erg benieuwd naar de reactie(s) !

Joggie ;)


Acties:
  • 0 Henk 'm!

  • flashin
  • Registratie: Augustus 2002
  • Laatst online: 17-12-2023
Waarom maak je niet gewoon een netwerkschijf aan? Met een beetje systeembeheer moet je dit ook kunnen oplossen lijkt me?

WebDAV heb ik verder geen ervaring mee.

Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 08-09 11:16
Kan je geen link maken die Word aanspreekt en vervolgens automatisch het bestand opent? Waarschijnlijk levert dat wel een hoop security meldingen op aangezien je lokaal gaat linken maar wellicht toch interessant.

Acties:
  • 0 Henk 'm!

  • joggie
  • Registratie: November 2004
  • Laatst online: 03-02 15:00

joggie

Wie niet gek is, is saai

Topicstarter
@flashin en @djluc,
De webapplicatie gaat niet "lokaal" gebruikt worden. Dus dat is verder niet mogelijk. Netwerkschijf aanmaken dus ook niet, dit soort instellingen kunnen client side niet gemaakt worden. Overigens is er meer van toepassing op de genoemde documenten, die moeten laten namelijk weer door de applicatie zelf opgepikt worden.

Een link naar het document maken in een vorm als :
code:
1
<a href="http://server/databak/document.doc">Open document</a>

Dat lukt wel, echter dan wordt het document in alleen-lezen geopend, en niet in schrijfbare modus.

Meer ideeen zijn uiteraard nog welkom!

Joggie ;)


Acties:
  • 0 Henk 'm!

Verwijderd

Je users moeten wel schrijfrechten hebben op de FTP als ze wijzigingen door willen voeren.
Anders gaat het niet werken. Dit moet je dus nog goed instellen.

Overigens vind ik wel onzin dat je users niet de map mogen openen in de browser.
Je bied eigenlijk voor hen een betrouwbare manier je files aan.
Maar het is slechts een mening.

[ Voor 50% gewijzigd door Verwijderd op 07-07-2009 00:24 ]


Acties:
  • 0 Henk 'm!

  • joggie
  • Registratie: November 2004
  • Laatst online: 03-02 15:00

joggie

Wie niet gek is, is saai

Topicstarter
@Typnix, bedankt voor je reply. FTP heeft verder niks met WebDAV te maken, indirect heb je dus ook niets met gebruikers te maken. Je kunt dit wel middels een .htaccess bestand doen. WebDAV wordt vaak als uitbreiding op standaard HTTP betiteld, en dat is naar mijn mening ook wel terecht.

Onzin, nouja, het is uiteraard maar net hoe je het bekijkt. De betrouwbaarheid zit hem nu net in het feit dat de gebruiker met zijn eigen vertrouwde Word kan werken. Hem hoef ik alleen maar wijs te maken dat als het bestand open is, hij op opslaan hoeft te klikken. De rest gaat als vanzelf. Moeilijk doen met "je moet onder je netwerkverbindingen een nieuwe netwerk map aanmaken" of "je moet de website openen als webfolder" daar maak je het alleen maar ingewikkeld voor een gebruiker mee.

Dit maakt waarschijnlijk ook noodzakelijk om iets over de doelgroep te vertellen, want het gaat hier namelijk niet over bejaarden (zonder bewust te generalliseren hier ;-)). De gebruikers waar het over gaat zijn geen computer digibeten, maar ook zeker geen tweakers. Daarnaast hebben ze geen baat bij hoe de techniek werkt, hij moet gewoon werken. En tot slot wil de gebruiker geen nieuwe IT cursus hoeven doen over weer een nieuwe tekstverwerker (de nadruk in het webdav probleem ligt niet op de tekstverwerker, echter wel op het verwerken van een document). Word kennen ze, en hebben ze.

Het browsen in de map, dat is voor de werking overigens ook niet noodzakelijk, de map dient uiteindelijk niet als definitieve opslag. Het zou dus, als voorbeeld, dagelijk gepurged kunnen worden.

Is er voor mijn probleem meer info nodig?

Joggie ;)


Acties:
  • 0 Henk 'm!

  • Kalentum
  • Registratie: Juni 2004
  • Nu online
Ik neem aan dat je een link wil maken naar het word document vanuit een webapplicatie? Dus mensen gebruiken een browser om het word document op te roepen? Dan ben ik bang dat er geen goede oplossing is.

Normaal gesproken haalt een browser het bestand binnen en opent dan de bijbehorende applicatie. Wat jij wil is de browser het bestand niet download maar de url doorstuurt naar Word zodat die het document direct opent vanaf de webserver. Volgens mij kan dat niet, omdat een browser niet zomaar weet welke url (beginnend met http://) naar Microsoft Word zou moeten en welke door de browser zelf afgehandeld moet worden.

Misschien kun je een eigen protocol handler maken waardoor urls die beginnen met 'msword://' automatisch naar word gaan. Dit moet client site.

Wat nog zou kunnen is iets met een dynamisch gegenereerde macro in een Word document die niets anders doet dan het opgevraagde document te openen. Dus bv http://example.com/dummydownload/test.doc bevat een macro die bij het openen van test.doc (dus na het downloaden vanuit de browser) het echte document opent vanaf http://example.com/dav/test.doc, dus gebruik makend van Words eigen 'open' functie. Hierdoor hoef je client side niets te wijzigen.

Acties:
  • 0 Henk 'm!

  • joggie
  • Registratie: November 2004
  • Laatst online: 03-02 15:00

joggie

Wie niet gek is, is saai

Topicstarter
@rutgerw, dat klinkt goed.

Dat de broswer het bestand niet download, maar de link direct doorstuurd naar Word, daar zat ik inderdaad aan te denken. Dit omdat ik al dacht dat het verschijnsel inderdaad verzoorzaakt wordt doordat de browser zelf het document al binnenhaalt, en dan vervolgens het gedownloade naar Word stuurd.

Ik ga jou tips beide onderzoeken op uitvoerbaarheid!

Meer ideeen mag uiteraard ook!

Joggie ;)


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 08-09 11:16
Kan je niet gewoon linken:
C:\Program Files\Microsoft Office\OFFICE11\Word.exe - pad naar webdav hier ofzo. Dat was wat ik bedoelde. Dan heb je kans dat Word gewoon gestart wordt na melding.

Acties:
  • 0 Henk 'm!

  • joggie
  • Registratie: November 2004
  • Laatst online: 03-02 15:00

joggie

Wie niet gek is, is saai

Topicstarter
@djluc
Oh op die manier bedoel je, nou het zou wellicht een mogelijkheid zijn inderdaad. Zei het echter dat je vaak niet precies weet welke office versie gebruikt word. Ervan uit gaan dat het office is, dat is nog wel oke, maar welke versie is dan een ander verhaal.

Ook weet ik niet waar het geinstalleerd staat..

Ik wil in iedergeval wel eens kijken wat ik ook met die manier kan doen.

Joggie ;)


Acties:
  • 0 Henk 'm!

  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 08-09 11:16
Wellicht dat je dat eenmalig met bijvoorbeeld een Java applet kan uitvinden (die kunnen vaak lokaal files benaderen geloof ik) en op basis daarvan je keuze kan maken. Dus opslaan wat de locatie is + ip ofzo. Dan hoef je dat maar eenmalig te doen.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 10:54

Janoz

Moderator Devschuur®

!litemod

@djluc:

Linken naar een lokale executable om die uit te voeren gaat nooit werken. Zou een mooie boel zijn met bijvoorbeeld een linkje naar c:\windows\format c:

Java-applets hebben daarnaast geen toegang tot het local filesystem. Alleen wanneer je een gesignd applet hebt dat door de gebruiker toestemming gekregen heeft kun je het filesystem bereiken.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • mark_gl
  • Registratie: September 2001
  • Laatst online: 11-09 22:44
@joggie: heb je dit probleem nog opgelost?

Ik loop nu tegen dezelfde problemen aan en krijg een read-only bestand wanneer ik via de browser klik op de link http://www.website.nl/document.doc en krijg een editable bestand wanneer ik via Word het bestand open via de link http://www.website.nl/document.doc

Een werkende oplossing heb ik gevonden mbv een ActiveXObject, maar dan moet je wel beveiligingsinstellingen in IE aanpassen.

Acties:
  • 0 Henk 'm!

  • js303
  • Registratie: April 2003
  • Laatst online: 01-06 10:17
@ Joggie: Interessant topic dit. Ik ben 4 jaar geleden begonnen aan WebDAV in een zowat exact gelijke situatie als jij. Ben toen wegens tijdgebrek (in de baas z'n tijd) afgehaakt. Ben benieuwd of er inmiddels schot in de zaak zit.

Het punt van het niet kunnen openen van een document in read+write mode vanuit de browser, heeft dat niet simpelweg met authenticatie te maken?

Of komt het wellicht doordat de browser een http request doet, een http response terugkrijgt met de content-header (application/msword) en vervolgens deze download naar de temporary internet files map waarna Word deze opent? In dat traject is de DAV authenticatie incl oorspronkelijke pad volledig zoekgeraakt toch?
Pagina: 1