微軟office web apps 服務器搭建之在線文檔預覽(二)


上一篇文章已經介紹了整個安裝過程了。只要在瀏覽器中輸入文檔轉換server的ip,會自動跳轉,出現如下頁面。

 

 

那么就可以實現本地文檔預覽了,你可以試試。(注意;是本地哦,路徑不要寫錯,類似“\\file\share”。如果不能預覽,那么還要注意文檔的權限哦,不多說。)

看到這個,就算完成80%以上的工作了,因為不需要寫任何代碼,只要安裝好服務器,就可以實現本地文件預覽了。那么問題就來了,怎么實現http預覽,跨服務器預覽呢?且看下面。

 

如果要想實現http訪問,跨服務器訪問,那么就要實現wopi協議了。這個不是只能實現本地文件預覽。

這個也是大家最關心的了。剛開始的時候我也一直不知道怎么弄,問了好多其他童鞋,都說只能實現本地文件預覽。后來尋尋覓覓,終於找了C#的實現,我嘗試着用php簡單的實現了,很簡單。繼續往下看吧。

以下也主要是參考:http://www.cnblogs.com/poissonnotes/p/3277280.html 

這篇文章也是超級經典。(上篇安裝的也是參照這個作者的,文章很經典)

我也不知羞恥,重新用php炒一下剩飯。

 

1、主要實現wopi協議(http://msdn.microsoft.com/en-us/library/hh622722(v=office.12).aspx 參看WOPI協議,裝下13,可以下載下來看看)

WOPI通訊主要實現兩個服務: 
1)、一個是CheckFileInfo服務 
2)、一個是GetFile服務

2、創建服務

1)、首先創建CheckFileInfo服務 
我們先確定這個服務的路由地址 
設置為:HTTP://server/<...>/wopi*/files/?access_token=

注意:這里沒有驗證access_token,請自行驗證。很多同學問access_token怎么來的,這個自己設置就行,不是必須的。

代碼實現如下,主要是返回一個json對象的文件信息。 

在瀏覽器中輸入:http://localhost/wopihost/wopi/files/test.docx(項目中需要存在該test.docx文件),返回如下數據,則表示成功 

 

2)、再來制作GetFile服務

我們先確定這個服務的路由地址 
設置為:HTTP://server/<...>/wopi*/files//contents?access_token=

代碼如下:GetFile服務主要是返回文件的數據流。

 

3)、驗證服務

http://192.168.1.21/hosting/discovery 
通過以上鏈接返回的信息,可以知道不同類型的文檔訪問的鏈接。

在瀏覽器輸入以下鏈接:http://192.168.1.21/wv/wordviewerframe.aspx?WOPISrc=http%3A%2F%2F192.168.1.102%2Fwopihost%2Fwopi%2Ffiles%2Ftest.docx 
(注意test文檔必須存在,路徑正確哦)

其中:192.168.1.21是office web apps server,192.168.1.102是實現wopi服務的server

如果出現如下,則表示成功。 很簡單吧,大家可以隨意的集成到自己的項目中去了。

 

注意:如果沒有成功,不要灰心,可以先調試excel,因為excel沒有驗證SHA256算法,如果excel成功了,其他類型文檔沒有成功,那么說明SHA256算法實現不對。

 

附上我的wopihost開源實現,僅供參考:https://github.com/cisiqo/WopiHost (最近又抽筋了,訪問比較慢)

 

另外再附上公司使用這套方案的轉換頁面: 第一個使用了iframe,第二個正常訪問的

 

 

 

==========分割線=========

 

當然,office web apps不僅僅做可以預覽,當然也可以在線編譯了。下面附一張別人驗證的截圖(http://blog.csdn.net/ma_jiang/article/details/24057847 評論中有貼過的):

以上edit和remark我沒有做過驗證,這個也是我接下來的工作,有進展我會繼續博客的。

view和mobileview已經驗證,目前測試https下,好像預覽也有問題,不過這個是可以解決的,傳輸過程可以使用https,服務器之間可以不用走https協議。

 

========再分割=======

在查資料的時候發現,我們的競爭對手明道(企業社交應用)也是用這個方案(https://docview.mingdao.com),不知道他們使用的情況如何。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM