关于在线weboffice(基于active控件)

本文介绍了如何使用基于Active控件的在线WebOffice,详细阐述了加载文件、插入图片以及实现在线编辑后保存到服务器的步骤。适用于IE内核及部分其他浏览器,通过HttpInit、HttpAddPostString、HttpAddPostCurrFile和HttpPost方法完成数据交互,并在后端通过Request对象获取并保存文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先要有个weboffice.cab文件,解压后里边有个ocx控件是主体

js页面Loadweboffice.js配置文件指向

var s = "";
//var height = parent.document.getElementById("PrjList").scrollHeight;
// var height = document.body.clientHeight;
// height = height - 50;

    s += "<object id=WebOffice1 height=768 width='100%' style='LEFT: 0px; TOP: 0px'  classid='clsid:E77E049B-23FC-4DB8-B756-60529A35FAD5'  codebase='WebOffice.cab#Version=7,0,1,8'>"
    s +="<param name='_ExtentX' value='6350'><param name='_ExtentY' value='6350'>"
    s +="</OBJECT>"



if (navigator.userAgent.indexOf("Chrome") > 0) {
    alert("test");
    s="";
    s = "<object id='WebOffice1' type='application/x-itst-activex' align='baseline' border='0'"
        + "style='LEFT: 0px; WIDTH: 100%; TOP: 0px; HEIGHT: 600px'"
        + "clsid='{E77E049B-23FC-4DB8-B756-60529A35FAD5}' codebase='WebOffice.cab#Version=7,0,1,8'"
        + "event_NotifyCtrlReady='WebOffice1_NotifyCtrlReady'>"
        + "</object>";
}


if (navigator.userAgent.indexOf("Firefox") > 0) {
    alert("fox");
    s="";
    s = "<object id='WebOffice1' type='application/x-itst-activex' align='baseline' border='0'"
        + "style='LEFT: 0px; WIDTH: 100%; TOP: 0px; HEIGHT: 600px'"
        + "clsid='{E77E049B-23FC-4DB8-B756-60529A35FAD5}' codebase='WebOffice.cab#Version=7,0,1,8'"
        + "event_NotifyCtrlReady='WebOffice1_NotifyCtrlReady'>"
        + "</object>";
}
document.write(s)

里边虽然写了谷歌火狐的运行方式,但是不支持,IE内核的都可以,腾讯系的浏览器,360,IE,edg,傲游等都可以

最后在调用weboffice1就好了

 

webObj.LoadOriginalFile(opurl, "doc");打开文件

webObj.InSertFile("http://114.115.133.183:5040/"+qrcodename+".jpg", 9);插入图片

 

关于office在线更改数据保存到服务器上:

第一步,初始化HTTP。office.HttpInit();

第二步,由于weboffice的提交数据跟平常的form表单的提交没什么区别,因此我们可以在此进行附加一些其他的数据,如文件名。office.HttpAddPostString("fileName", fileName);

第三步,将我们需要保存的文档附加进来。office.HttpAddPostCurrFile("xxxxx", '');

这里说一下第三步,office.HttpAddPostCurrFile("xxxxxx", '');

在接收的jsp页面用item.getfieldname的方法得到的是内容"xxxxx"

第四步,将数据提交到一个php或jsp的接收页。office.HttpPost("./resources/jsp/upload.jsp");

这四步,除了第二步之外其他的三步都是必不可少的。

 

后端接收的核心代码:

与表单提交一样,读取request对象

    
    boolean isMultipart = ServletFileUpload.isMultipartContent(request);
    if(isMultipart){
    DiskFileItemFactory factory=new DiskFileItemFactory(); 
//	factory.setRepository(new File(savePath+"/temp"));// 设置缓冲区目录
	ServletFileUpload fu=new ServletFileUpload(factory);
	//设置允许用户上传文件大小,单位:字节 
	fu.setSizeMax(100000000);
	List fileItems = fu.parseRequest(request);
	//System.out.println(fileItems.get(0));
	Iterator<FileItem> itr = fileItems.iterator();//所有的表单项
	
	while (itr.hasNext()) {	
		FileItem item = (FileItem) itr.next();//循环获得每个表单项

最后的item里边存有一个一个临时数据文件,写入之后应该是直接销毁,上边携带的数据xxxx在item里边的fieldname这个变量里,可携带的字节数也比较大。item有一个流输出的方法查看,不过存word过来的数据在控制台上边显示是乱码。反正最后item.write(地址)保存出来的东西是正常的就好了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值