流程定义资源文件下载

简介: 流程定义资源文件下载

下载流程定义资源文件

有两种方式

方案1 使用activiti提供的api来下载资源文件 方案2 自己写代码从数据库中下载文件,使用jdbc对blob和clob类型数据读取出来,保存到文件目录 需要解决io操作:使用commons-io.jar

网络异常,图片无法展示
|

因为上面已经把我们的流程删除了,我们需要重新执行代码部署一个新的流程,重新执行部署和启动(实例化)

网络异常,图片无法展示
|

这里我们选择使用activiti提供的api进行操作

首先引入commons-io解决io操作

<!--通过commons-io解决io问题-->
<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>2.6</version>
</dependency>

然后就可以写代码了,我们直接在代码指定输出目录.即D盘

// 下载流程资源文件
// 方案1 使用activiti提供的api来下载资源文件
// 方案2 自己写代码从数据库中下载文件,使用jdbc对blob和clob类型数据读取出来,保存到文件目录
// 需要解决io操作:使用commons-io.jar
// 这里我们选择使用方案1去操作
@Test
public void downloadProcessFile() throws Exception {
    // 获取流程引擎
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    // 获取RepositoryService
    RepositoryService repositoryService = processEngine.getRepositoryService();
    // 获取查询对象ProcessDefinitionQuery,查询流程定义信息
    ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
            .processDefinitionKey("myEvection")
            .singleResult();
    // 通过流程定义信息,获取部署ID
    String deploymentId = processDefinition.getDeploymentId();
    // 通过RepositoryService,传递ID参数,读取资源文件(png和bpmn)
    // 从流程定义中,获取图片png图片的目录和名字
    String pngResourceName = processDefinition.getDiagramResourceName();
    // 通过部署id和文件名称获取png图片的流
    InputStream pngInInputStream = repositoryService.getResourceAsStream(deploymentId, pngResourceName);
    // 获取bpmn文件的流
    String bpmnResourceName = processDefinition.getResourceName();
    InputStream bpmnInputStream = repositoryService.getResourceAsStream(deploymentId, bpmnResourceName);
    // 构造OutputStream输出流 输出路径
    File pngFile = new File("d:/evectionFlow01.png");
    File bpmnFile = new File("d:/evectionFlow01.bpmn");
    FileOutputStream pngOutputStream = new FileOutputStream(pngFile);
    FileOutputStream bpmnOutputStream = new FileOutputStream(bpmnFile);
    // 输出流,和输出流的转换
    IOUtils.copy(pngInInputStream,pngOutputStream);
    IOUtils.copy(bpmnInputStream,bpmnOutputStream);
    // 关闭流
    pngOutputStream.close();
    bpmnInputStream.close();
    pngInInputStream.close();
    bpmnInputStream.close();
}

运行代码 效果展示 在d盘找到了这两个文件 打开也是一样的

网络异常,图片无法展示
|

相关文章
|
1月前
|
API 数据库
Activiti 流程资源文件下载及历史信息查询
Activiti 流程资源文件下载及历史信息查询
21 0
|
9天前
|
小程序 开发者
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
14 0
|
17天前
|
人工智能 Serverless 对象存储
让你的文档从静态展示到一键部署可操作验证
好的文档应当超越文字的界限,成为知识传递和技能培养的桥梁。阿里云函数计算让我们朝着这一目标迈出了重要一步。我们将文档从传统的静态页面升级为一个动态的、互动性强的工具,用户可以通过一键部署直接在函数计算平台验证文档内容。
148 0
|
1月前
|
存储 算法 C语言
【C/C++ 应用开发 检测文件 】详解 C/C++ 中常用的 5 种文件存在检查方式
【C/C++ 应用开发 检测文件 】详解 C/C++ 中常用的 5 种文件存在检查方式
47 0
|
10月前
|
弹性计算 小程序
阿里云学生验证网页入口及流程
阿里云学生验证网页入口及流程,阿里云学生用户完成学生认证可以免费领取一台阿里云服务器,那么问题来了,阿里云学生验证申请入口​在哪?阿里云百科分享阿里云学生验证入口网页链接及学生认证全流程
357 0
|
Java 应用服务中间件 Linux
springboot上传下载文件(1)(项目和文件资源放在同一个服务器上)
springboot上传下载文件(1)(项目和文件资源放在同一个服务器上)
290 0
springboot上传下载文件(1)(项目和文件资源放在同一个服务器上)
|
Java Spring 容器
开发20年,你可知道SpringWeb接口资源是如何保存起来的?
我们在浏览器上只输入了一个URL地址,怎么就能访问到这个接口的呢?于是乎就引出了 今天我们要讨论的话题。Spring中的Web接口资源是如何保存起来的?
190 0
|
缓存 程序员 应用服务中间件
WEB核心【案例:文件下载,案例:点击切换验证码,几种获取properties资源方式】第十二章
目录1.文件下载1.1超链接下载:1.2自定义servlet下载1.3小结2.点击切换验证码2.1前置只是-验证码生成2.2分析及代码实现2.3需求2:点击切换验证码-绕过缓存3.几种获取preperties资源方式 超链接下载方式自定义Servlet下载通过自定义Servlet 完善超链接下载,可以下载中文名资源
WEB核心【案例:文件下载,案例:点击切换验证码,几种获取properties资源方式】第十二章
|
前端开发 JavaScript 数据库
(简易)测试数据构造平台: 20 (工具申请-工单新建)
(简易)测试数据构造平台: 20 (工具申请-工单新建)
(简易)测试数据构造平台: 20 (工具申请-工单新建)
|
安全 编译器 API
C++在资源管理类中提供对原始资源的访问
C++在资源管理类中提供对原始资源的访问
127 0