来源:自学PHP网 时间:2014-12-14 21:28 作者: 阅读:次
[导读] 因为项目的关系,研究了一下Office的在线编辑功能,写出来共享一下。...
Office xp之后的版本支持通过webdav协议(http的扩展)直接编辑服务器上的文件。
IIS(6.0)支持webdav,这在IIS管理器的web服务扩展中可以看到.利用IIS作为webdav的服务器端,可以很容易的实现office(word,excel等)的在线编辑. 可以简单的实验一下: 确保IIS的webdav扩展安装并被启用了,建立一个虚拟目录test,在其中放一个word文档a.doc,然后打开word, 文件->打开->输入word文档的访问url(http://localhost/test/a.doc), 修改一下文档内容,保存一下,发生了什么? 文档被保存到服务器上了. 在IE中,可以通过js创建Word.Application,来打开,修改服务器上的文档. 复制代码 代码如下: wApp = new ActiveXObject("Word.Application.11"); wApp.Visible = true ; wApp.Documents.Open( url ); if( trackRevisions ){ //可以实现痕迹保留呢 wApp.ActiveDocument.TrackRevisions = true ; wApp.ActiveDocument.ShowRevisions = false ; }else { wApp.ActiveDocument.TrackRevisions = false ; wApp.ActiveDocument.ShowRevisions = false ; } wApp.ActiveDocument.Application.UserName= Global_CurrentUserName; 另外,安装office时,会同时按装一个ActiveX组件:Sharepoint.OpenDocuments,可么用此组件来激活word,编辑服务器上的文档: var __OpenDocuments = null ; 复制代码 代码如下: function Document_Edit2( url ) { if( __OpenDocuments == null ) { try{ __OpenDocuments = new ActiveXObject("SharePoint.OpenDocuments.3"); //for office 2007 }catch(e){} if( __OpenDocuments == null || typeof(__OpenDocuments) == "#ff0000" ) { try{ __OpenDocuments = new ActiveXObject("SharePoint.OpenDocuments.2"); //for office 2003 }catch(e){} } if( __OpenDocuments == null || typeof(__OpenDocuments) == "undefined" ) { alert( "请安装Word(2003或更高版本)" ); return ; } } // openDocObj.ViewDocument("http://www.abc.com/documents/sample.doc");, "Word.Document" //openDocObj.CreateNewDocument("http://www.abc.com/documents/sampleTemplate.dot", "http://www.abc.com/documents/"); var result = __OpenDocuments.EditDocument( url , "Word.Document" ); if( result == false ) { alert( "无法打开文档." ); } } 可以看到,基于IIS的webdav支持,可以非常简单的实现office文档的在线编辑, 但有一个问题:这样,文档是存放在文件系统上,我们很多系统中, 文档是存放在数据库中的,这样一来,如何实现呢??? I tried a lot and found the solution. It will be in the next article . |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com