泛微 Ecology9 附件相关常用代码
附件相关常用代码
泛微 / Ecology9
1. 对外提供指定附件下载地址
-
通过泛微自带的附件下载地址加上生成的认证信息,生成附件地址有两种方案,区别在于认证的生成。
方案1:通过DesUtils 工具类生成 try { String imagefileid = "123456"; // 附件的id,不是表单上写入数据库的id String url = "http://127.0.0.1:8080"; // 系统外部访问地址 String userId = "1"; // 授权用户 1表示管理员 String startTime = "2026-05-12 12:00:00"; // 授权链接的允许下载的开始时间 String time = "5"; // 授权链接的有效时长(分钟) String rawCode = userId + "_" + imagefileid + "_" + startTime + "_" + time; // String rawCode = userId + "_" + imagefileid; // 不限制时间,不建议 DesUtils des = null; String ddcode; // 生成加密校验码 des = new DesUtils(); ddcode = des.encrypt(rawCode); String downUrl = url+"/weaver/weaver.file.FileDownload?download=1&fileid="+imagefileid+"&ddcode="+ddcode; System.out.println(downUrl); }catch (Exception e){ e.printStackTrace(); }方案2:通过SystemDocUtil 工具类生成 String imagefileid = "123456"; String url = "http://127.0.0.1:8080"; Map params = new HashMap(); params.put("timelimit", "1"); // 0表示永久,1表示限定时长 String time = "5"; params.put("timeout",time); // 设为具体分钟数可限制时效,需timelimit设置成1才生效。不设置该参数,默认5分钟有效 params.put("adminright", "1"); // 1表示启用管理员权限 User user = new User(1); String ddcode = SystemDocUtil.takeddcode(user, imagefileid+"", params); String downUrl = url+"/weaver/weaver.file.FileDownload?download=1&fileid="+imagefileid+"&ddcode="+ddcode; System.out.println(downUrl);
2. 读取文件流
-
int imageFileId = 123456; ImageFileManager imageFileManager = new ImageFileManager(); imageFileManager.getImageFileInfoById(imageFileId); InputStream inputStream = imageFileManager.getInputStream(); return inputStream;
3. 通过docId(表单上文档字段入数据库的值)查询imageFileId
-
int docId = 123; String sql = "SELECT a.imageFileId,a.imageFileName,a.imageFileType,a.fileRealPath,a.fileSize from ImageFile a inner join DocImageFile b on a.imageFileId = b.imageFileId where b.docId = ?"; RecordSet rs = new RecordSet(); rs.executeQuery(sql,docId); List<Integer> imageFileIds = new ArrayList<>(); while(rs.next()){ imageFileIds.add(rs.getInt("imageFileId")); }