泛微ECOLOGY9实现在不登录状态根据文档ID调用文档的接口实现

泛微ECOLOGY9实现在不登录状态根据文档ID调用文档的接口实现

FileServlet.java

package com.file.servlet;

import com.caucho.util.Sprintf;
import org.apache.tools.ant.taskdefs.EchoXML;
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 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;

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("fileid"); //获取文档id
        String method = "";
        Pattern pattern = Pattern.compile("^[-\\+]?[\\d]*$");
        try {
            if (!pattern.matcher(docid).matches()) {
                docid = com.api.doc.detail.util.DocDownloadCheckUtil.DncodeFileid(docid);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }        // 将文件夹download打包到文件夹downloadzip
        RecordSet rs = new RecordSet();
        rs.execute(" select docimagefile.imagefileid as imagefileid,filerealpath,imagefiletype,imagefile.imagefilename,iszip from imagefile,docimagefile "
                + " where imagefile.imagefileid =docimagefile.imagefileid  and  docimagefile.docid='" + docid + "'");
        if (rs.first()) {            // 设置http的头部,可设置下载的zip的文件名
            response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(rs.getString("imagefilename"), "utf-8") + "\"");
            String filerealpath = rs.getString("filerealpath");
            String imagefileid = rs.getString("imagefileid");
            int iszip = rs.getInt("iszip");
            new BaseBean().writeLog("iszip==>" + iszip + ",filerealpath=====>" + filerealpath);
            ZipFile zf = null;
            ZipInputStream zin = null;
            ZipEntry ze = null;
            InputStream is = null;
            File file = null;
            try {
                if (1 == iszip) {
                    new BaseBean().writeLog("压缩文件");
                    zf = new ZipFile(filerealpath);
                    zin = new ZipInputStream(new BufferedInputStream(new FileInputStream(filerealpath)));
                    ze = zin.getNextEntry();
                    is = zf.getInputStream(ze);
                } else {
                    ImageFileManager imageFileManager = new ImageFileManager();
                    imageFileManager.getImageFileInfoById(Util.getIntValue(imagefileid, 0));
                    is = imageFileManager.getInputStream();
                    new BaseBean().writeLog("非压缩文件");
                }
               // URLEncoder.encode(rs.getString("imagefilename"), "utf-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
            byte[] buf = new byte[4096];        /* 创建输出流 */
            ServletOutputStream servletOS = response.getOutputStream();
            int readLength;
            while (((readLength = is.read(buf)) != -1)) {
                servletOS.write(buf, 0, readLength);
            }
            servletOS.flush();
            servletOS.close();
        }
    }
}

1、将以上代码编译后放到WEAVER\ecology\classbean\com\file\servlet目录中。
2、然后修改WEAVER\ecology\WEB-INF目录下的web.xml文件
在文件尾部上面添加

<!--文档附件读取Start lth-->
	<servlet>
	  <servlet-name>FileServlet</servlet-name>
	  <servlet-class>com.file.servlet.FileServlet</servlet-class>
	</servlet>
	<servlet-mapping>
	  <servlet-name>FileServlet</servlet-name>
	  <url-pattern>/file/fileServlet</url-pattern>
	</servlet-mapping>
<!--文档附件读取Start end-->

3、重启OA服务后,就可以通过/file/fileServlet配置的路径访问文件了。
如:http://OA地址/file/fileServlet?fileid=<%=82413" 82413为docid。

参考资料来源
https://gitee.com/L1uTaihong/WeaverEc9CustomDev/blame/master/src/com/customization/servlet/FileServlet.java
使用说明 http://note.youdao.com/s/77miwS0Q

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
泛微ecology9 是一种文档管理系统,它可以帮助企业进行文档的创建、存储、共享和管理。它使用了最新的云计算和大数据技术,能够提供稳定高效的文档管理服务。 首先,泛微ecology9 可以帮助企业提高工作效率。它提供了多种文档创建和编辑工具,包括文本编辑器、电子表格和演示文稿等。用户可以在这些工具中创作和编辑文档,并将其保存在系统中,方便随时查找和使用。同时,系统还支持多人协同编辑,多人可以同时编辑同一份文档,大大提高了工作效率。 其次,泛微ecology9 可以帮助企业提高文档管理的安全性。它通过权限管理和版本控制等功能,确保只有授权人员可以查看和编辑文档。此外,系统还可以对文档进行备份和恢复,避免文档丢失或损坏。同时,系统还支持文档的审批流程管理,保证文档的合规性。 另外,泛微ecology9 还具有强大的搜索和分类功能。用户可以通过关键词搜索或者自定义标签来快速找到需要的文档。系统还能够自动将文档分类整理,方便用户进行管理和归档。 最后,泛微ecology9 还与其他企业应用系统的对接。它可以与企业的邮箱系统、办公套件和企业资源管理系统等进行无缝集成,实现文档的快速导入和导出。 总之,泛微ecology9 是一款集文档创建、存储、共享和管理于一体的优秀软件。它具有高效、安全、便捷的特点,可以满足企业对文档管理的各种需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

东枫落定

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值