首先,我们可以在本地环境创建一个仅有附件的表单
然后我们再创建对应的模块和查询
部署到前端界面先创建几个附件实例
我这里的表单对应的是数据库表名uf_fjcs
这时候我们可以打开数据库管理工具,查看对应数据库中的内容
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文档会出现文件损坏问题!!!