2009-07-07 14 views
1

誰かがこの奇妙な(または正常な)動作を説明することができますか: 私はWebDAVディレクトリを持っています。このフォルダには、document.docという単語文書があります。WebDAV/PHP - HTMLアンカーのMS Word文書を開きますか?

Wordを開き、[ファイルを開く]を選択してURL全体を入力すると、http://server/webdav/document.doc、Wordはドキュメントを正常に開きます。私が行った変更はセーブクリックで保存されています。

さて、私はこのような本文書にアンカーしてHTMLページを作成するとき:

<a href="http://server/webdav/document.doc">Edit document</a> 

それだけで罰金文書を開きますが、読み取り専用モードで開きます!

Wordを使用してファイルを開くと、WebDavクライアントとしても機能することが調査によって示唆されています。したがって、適切なヘッダーを送信してファイルをロックします。アンカーから呼び出すと、ブラウザはGETを実行できます。それから、Wordにダウンロードされた文書を渡します。 Wordはファイルに対していくつかのHTTP呼び出しを行いますが、LOCKなどはありません。

誰も私がこれをどのように解決できるか考えていますか?私はHTTPコールを行うためにいくつかのPHPコードを書くことができますが、それではWordでそれをどうやって得るのですか?

+0

私はこの同じ問題に苦しんでいます。私は私たちのIEクライアントのjavascriptでActiveXObjectを使用しています。私たちはデータベースからWordファイルを提供しているので、LOCK/UNLOCK/PROPFIND/etcメソッドがサポートされているWebDavサーバーを実装しました。これは今まで働いていましたが、今では停止しています。それが私たちのためにとても混乱し/難しい理由です。 –

答えて

1

これは可能ではありません。 Webブラウザから開くと、最初にコピーがダウンロードされ、一時フォルダーに保存された後、Wordに渡されます。あなたが探しているのは、文書を開いているということです。したがって、あなたがする必要があるのは、リンクを開いてパラメータを渡すことです。 非常に不快なハックは、phpが目的のwebdav-documentを開くことができるようにwordで読むことのできるファイルを生成させることでしょう。マクロでこれを行うことはできますが、a)単語のマクロセキュリティ設定を低くする必要があります.b)これを行った他の人に決して頼ることはできません(したがって、それは単なるソリューションです)。

1

thisを参照してください。基本的には、Microsoft Sharepointの一部であるActiveXオブジェクトを呼び出すJavascriptを使用します。

0

IIRC、Confluence(Atlassian)には、これを実現するFirefox用のWebDavアドインがあります(ブラウザのリンクをクリックしてWebDavモードでWordに文書を開きます)。しかし、どのようにそれが行われているか分からない。

関連する問題