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

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

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

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

    s += ""
    s +=""
    s +=""



if (navigator.userAgent.indexOf("Chrome") > 0) {
    alert("test");
    s="";
    s = ""
        + "";
}


if (navigator.userAgent.indexOf("Firefox") > 0) {
    alert("fox");
    s="";
    s = ""
        + "";
}
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 itr = fileItems.iterator();//所有的表单项
	
	while (itr.hasNext()) {	
		FileItem item = (FileItem) itr.next();//循环获得每个表单项

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

你可能感兴趣的:(office,js,weboffice)