泛微ECOLOGY9知识预览文件超出大小限制的一种解决方法

问题描述如图:

泛微ECOLOGY9知识预览文件超出大小限制的一种解决方法_第1张图片
泛微自带的文档预览由于大小限制,所以很多文档都无法打开,除非买永中或者金山付费的在线预览服务做集成。 不过现在有很多开源的在线预览软件如 onlyoffice 等,也可以实现在线预览,所以只要跟泛微OA做点集成就可以了。

实现方法:

1、泛微OA开发文档下载接口,供onlyoffice下载到本地进行转换预览。

这一步进我原来的文章:泛微ECOLOGY9实现在不登录状态根据文档ID调用文档的接口实现
https://blog.csdn.net/dycp125/article/details/130950347
不过为了满足文档多附件时的下载调用,对代码做了一点修改,调整为根据 docid和imagefileid 获取文档,或者根据 docid 获取单附件文档,或者根据 imagefileid 直接获取图片。
代码如下:

import weaver.conn.RecordSet;
import weaver.file.ImageFileManager;
import weaver.general.BaseBean;
import weaver.general.Util;
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Null;
import java.io.*;
import java.net.URLEncoder;
import java.util.regex.Pattern;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import java.util.zip.ZipInputStream;
/** * 下载和在线打开PDF文件 * 使用说明 http://note.youdao.com/s/77miwS0Q */
public class FileServlet extends HttpServlet {
   
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   
        request.setCharacterEncoding("utf-8");
        response.setContentType("application/x-zip-compressed;charset=utf-8");        // 获取http传过来的参数
        String docid = request.getParameter("docid");
        String imageid = request.getParameter("imageid");
        String method = "";
        Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");

        String sql = "";

        if(imageid !="" && imageid != null && docid !="" && docid !=null){
   
            try {
   
                if (!pattern.matcher(docid).matches()) {
   
                    docid = com.api.doc.detail.util.DocDownloadCheckUtil.DncodeFileid(docid);
                }
            } catch (Exception e) {
   
                e.printStackTrace();
            }
            sql = " select docimagefile.imagefileid as imagefileid,filerealpath,imagefiletype,imagefile.imagefilename,iszip from imagefile,docimagefile "
                    + " where imagefile.imagefileid =docimagefile.imagefileid  and  docimagefile.docid='" + docid + "' and docimagefile.imagefileid='"+imageid+"'";
        }else if((imageid !="" && imageid !=null) && (docid =="" || docid == null)){
   
            try {
   
                if (!pattern.matcher(imageid).matches()) {
   
                    imageid = com.api.doc.detail.util.DocDownloadCheckUtil.DncodeFileid(imageid);
                }
            } catch (Exception e) {
   
                e.printStackTrace();
            }
            sql = "select imagefileid,filerealpath,imagefiletype,imagefilename,iszip from imagefile "
                    + " where imagefileid='" + imageid + "'";
        }else if((imageid =="" || imageid ==null) && (docid !="" && docid != null)){
   
            try {
   
                if (!pattern.matcher(docid).matches()) {
   
                    docid = com.api.doc.detail.util.DocDownloadCheckUtil.DncodeFileid(docid);
                }
            } catch (Exception e) {
   
                e.printStackTrace();
            }
            sql = " select docimagefile.imagefileid as imagefileid,filerealpath,imagefiletype,imagefile.imagefilename,iszip from imagefile,docimagefile "
                    + " where imagefile.imagefileid =docimagefile.imagefileid  and  docimagefile.docid='" + docid + "'"

你可能感兴趣的:(ECOLOGY工作笔记,javascript,开发语言,java,后端)