流程定义资源文件下载

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

下载流程定义资源文件

有两种方式

方案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盘找到了这两个文件 打开也是一样的

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

相关文章
|
4月前
|
API 数据库
Activiti 流程资源文件下载及历史信息查询
Activiti 流程资源文件下载及历史信息查询
42 0
|
1月前
|
人工智能 Serverless 对象存储
让你的文档从静态展示到一键部署可操作验证
好的文档应当超越文字的界限,成为知识传递和技能培养的桥梁。阿里云函数计算让我们朝着这一目标迈出了重要一步。我们将文档从传统的静态页面升级为一个动态的、互动性强的工具,用户可以通过一键部署直接在函数计算平台验证文档内容。
|
2月前
|
搜索推荐 API UED
资源部署及场景API调用体验过程的引导与操作流畅性
资源部署及场景API调用体验过程的引导与操作流畅性
|
3月前
|
存储 安全 PHP
安全开发-PHP应用&文件管理模块&显示上传&黑白名单类型过滤&访问控制&文件管理模块&包含&上传&遍历&写入&删除&下载&安全
安全开发-PHP应用&文件管理模块&显示上传&黑白名单类型过滤&访问控制&文件管理模块&包含&上传&遍历&写入&删除&下载&安全
|
4月前
|
小程序 开发者
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
体验版小程序为何无法访问云端服务器后端接口(请求失败...(已完美解决附加图片))?
180 0
定义一个事件需要单独新建一个文件吗?底层原理是什么?
定义一个事件需要单独新建一个文件吗?底层原理是什么?
|
安全 Java 开发者
案例之资源服务中加入校验用户所需对象|学习笔记
快速学习案例之资源服务中加入校验用户所需对象
案例之资源服务中加入校验用户所需对象|学习笔记
|
Python
跨文件夹调用自定义模块
跨文件夹调用自定义模块
67 0
|
Java Spring 容器
开发20年,你可知道SpringWeb接口资源是如何保存起来的?
我们在浏览器上只输入了一个URL地址,怎么就能访问到这个接口的呢?于是乎就引出了 今天我们要讨论的话题。Spring中的Web接口资源是如何保存起来的?
235 0
|
存储 JavaScript 测试技术
接口测试平台代码实现37:接口请求的保存和取消
本节主要来讲一下,使用者在打开接口调试面板后,点击保存按钮,就会成功保存好,并且再次打开后,能显示出来呢?可能大家会觉得本节课没什么难度,就是简单的保存而已,但是实际上,本节是非常复杂的。因为接口的不同编码格式,我们保存起来的基本只有一个大字符串。要如何存储和展示是需要进行特殊设计的,类似 加密和解密,压缩和解压缩。
接口测试平台代码实现37:接口请求的保存和取消