从OA中将加密文件解密并保存本地,或者保存到共享盘
1、根据requestid 找出对应docid
select * from formtable_main_291 where requestid=869869
2、 利用这个id继续查询
select top 10 * from docimagefile where docid = 46539
找到对应的imagefileid
3、select t1.imagefilename,t1.filerealpath,t1.iszip,t1.isencrypt,t1.imagefiletype , t1.imagefileid, t1.imagefile,t1.isaesencrypt,t1.aescode,t2.imagefilename as realname,t1.TokenKey,t1.StorageStatus,t1.comefrom from ImageFile t1 left join DocImageFile t2 on t1.imagefileid = t2.imagefileid where t1.imagefileid = 206023
其中filerealpath 为加密文件存放路径
aescode 为加密秘钥
然后在代码里使用这个imagefileid
package com.test; import weaver.file.ImageFileManager; import weaver.general.BaseBean; import weaver.interfaces.workflow.action.Action; import weaver.soa.workflow.request.RequestInfo; import java.io.*; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; public class RfcTest extends BaseBean implements Action{ @Override public String execute(RequestInfo request) { ImageFileManager imageFileManager = new ImageFileManager(); imageFileManager.getImageFileInfoById(206023); InputStream inputStream = imageFileManager.getInputStream(); File file = new File("F:\\files\\123456.pdf"); copyInputStreamToFile(inputStream,file); request.getRequestManager().setMessageid("90001"); request.getRequestManager().setMessagecontent("SAP系统业务处理失败或者网络问题,请稍后重试!错误信息:"); return Action.FAILURE_AND_CONTINUE; } private void copyInputStreamToFile( InputStream in, File file ) { try { OutputStream out = new FileOutputStream(file); byte[] buf = new byte[1024]; int len; while((len=in.read(buf))>0){ out.write(buf,0,len); } out.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } } }
具体关键类是两个类:
weaver.file.ImageFileManager
这是一个利用自己对象生成解密,解zip压缩后的inputstream
weaver.file.AESCoder
这是一个加密解密工具类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构