泛微ecology9二次开发-附件上传接口

首先,我们可以在本地环境创建一个仅有附件的表单
在这里插入图片描述
在这里插入图片描述
然后我们再创建对应的模块和查询
![在这里插入图片描述](https://img-blog.csdnimg.cn/da62016d76d34be1b07a966aecae91ef.png
部署到前端界面先创建几个附件实例
在这里插入图片描述
在这里插入图片描述

我这里的表单对应的是数据库表名uf_fjcs
在这里插入图片描述
这时候我们可以打开数据库管理工具,查看对应数据库中的内容
![在这里插入图片描述](https://img-blog.csdnimg.cn/245867bf29ce4bea8bec8c389b7f0bfb.png
ID为21的附件对应25,26,27;ID为22的附件对应31,32,33,我们可以发现数据库中存储的是其实是id数组。
最后我这里根据项目组古早的代码中获取了关键信息,代码我就直接贴上来了

	//上传文件接口,直接传入文件内容
    @POST
    @Path("/uploadFileContent")
    @Produces(MediaType.APPLICATION_JSON)
    public BaseResult uploadFileContent(@RequestBody Map map, @Context HttpServletRequest request){
        try {
            //读取存储磁盘id,默认81
            //getIntFromRequestHeader方法意为读取请求头“dirId”键的值,如不存在则默认为81
            int dirId = ProjectUtils.getIntFromRequestHeader(request, "dirId", 81);
            //赋予时间参数
            Date currentDate = new Date();
            SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat timeFormat = new SimpleDateFormat("hh:mm:ss");
            //创建文档对象,在ecology中附件都是以文档的形式(内含文档附件)存在            
            DocInfo docInfo = new DocInfo();
            docInfo.setDocSubject("" + map.get("name"));//文档主题
            docInfo.setDoccontent("");//文档内容
            docInfo.setSeccategory(Util.getIntValue(dirId));//存储的磁盘id
            docInfo.setDoccreaterid(1);//创建者id
            docInfo.setDoccreatedate(dateFormat.format(currentDate));//文档创建日期
            docInfo.setDoccreatetime(timeFormat.format(currentDate));//文档创建时间
            docInfo.setDoclastmoddate(dateFormat.format(currentDate));//文档修改日期
            docInfo.setDoclastmodtime(timeFormat.format(currentDate));//文档修改时间
            docInfo.setDoccreatertype(0);//文档创建类型
            docInfo.setDoclangurage(7);//盲猜文档语言,无关紧要
            docInfo.setOwnerid(1);//文档拥有者
            //创建文档附件对象
            DocAttachment docAttachment = new DocAttachment();
            docAttachment.setFilename("" + map.get("name"));//附件名称
            docAttachment.setFilecontent("" + map.get("content"));//附件内容
            docAttachment.setDocid(0);//文档id
            docAttachment.setImagefileid(0);//保存文件id
            docAttachment.setIsextfile("false");//是否为ext文件
            docAttachment.setIszip(0);//是否是压缩文件
            docAttachment.setDocfiletype("13");//文档文件类型
            docAttachment.setAesCode("");
            //将文档附件放置在文档对象中
            docInfo.setAttachments(new DocAttachment[]{docAttachment});
            //核心代码,ecology内置插入,会插入文档附件和文档对象,插入成功时会修改文档的id
            int docId = new DocServiceImpl().createDocByUser(docInfo, new User(1));
            //当id为0时说明创建失败
            if (docId == 0){
            	//自定义类,返回创建失败信息
                return BaseResult.fail("附件创建失败");
            }else{
            	//返回创建文档的id
                return BaseResult.successWithData(docId);
            }
        } catch (Exception e) {
        	//返回异常信息供前端调用
            return BaseResult.fail("代码错误" + e);
        }
    }

finally

1.代码中的dirId为
在这里插入图片描述
2.接口代码可以复用,只要在调用接口时将对应的文档存储id存储到请求头中就行。

最新提示:上传pdf文档会出现文件损坏问题!!!

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值