您的位置:首页 > 其它

【实战篇】Activiti流程资源文件上传部署

2017-10-26 09:53 399 查看

需求

部署绘制好的bpmn和png到activiti数据库中

存入activiti表

act_re_procdef

方案

根据file标签执行上传文件

前端核心代码:

<TR>
<TD height=30 align=right>选择流程定义bpmn文件</TD>
<TD class=category>
<input type="file" name="resource_bpmn" />
</TD>
</TR>
<TR>
<TD height=30 align=right>选择流程定义png文件</TD>
<TD class=category>
<input type="file" name="resource_png" />
</TD>
</TR>


后端controller代码:

/**
*
* <p>Title: FlowAction.java</p>
* <p>Description: 流程定义</p>
* <p>Copyright: Copyright (c) 2017</p>
* <p>Company: www.itcast.cn</p>
* @author 大米时代·周丽同
* @date 2017年10月24日上午11:27:03
* @version 1.0
*/
@Controller
@RequestMapping("/flow")
public class FlowAction {

@Autowired
private RepositoryService repositoryService;

@RequestMapping("/deployProcessSubmit")
/**
*
* <p>Title: deployProcessSubmit</p>
* <p>Description: 上传bpmn和png并完成部署,参数采用MultipartFile类型,通过该类型对象获取sh</p>
* @param resource_bpmn 业务流程图(xml格式)
* @param resource_png  业务流程图(png供用户查看)
* @return
* @throws Exception
*/
public String deployProcessSubmit(MultipartFile resource_bpmn,MultipartFile resource_png) throws Exception {
//第一步:上传文件
//springmvc通过文件上传的参数解析器将页面提交的file赋值为形参
//resource_bpmn和resource_png存储了上传的文件
//第二步:调用activiti的service执行流程定义部署
//部署bpmn文件和png文件
//bpmn上传文件名
String resourceName_bpmn = resource_bpmn.getOriginalFilename();
InputStream inputStream_bpmn = resource_bpmn.getInputStream();

//png上传文件名
String resourceName_png = resource_png.getOriginalFilename();
InputStream inputStream_png = resource_png.getInputStream();

//部署对象
Deployment deployment = repositoryService.createDeployment()
.addInputStream(resourceName_bpmn, inputStream_bpmn)//部署bpmn
.addInputStream(resourceName_png, inputStream_png)//部署png
.deploy();
//部署id
System.out.println("部署id:"+deployment.getId());
System.out.println("部署时间:" + deployment.getDeploymentTime());

//返回到流程定义的查询页面( 重定向)
return "redirect:queryProcessDefinition.action";
}


springmvc配置文件配置上传:

<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为5MB -->
<property name="maxUploadSize">
<value>5242880</value>
</property>
</bean>

入库效果图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: