Liferay7 BPM門戶開發之45: 集成Activiti文件上傳部署流程BPMN模型


 

開發文件上傳,部署流程模板。

首先,開發jsp頁面,deploy.jsp

<%@ include file="/init.jsp" %>

<h3>${RETURN_MESSAGE}</h3>
<h2><liferay-ui:message key="Deploy"/></h2>

<portlet:actionURL var="uploadURL" name="deployUploadAction">
                <portlet:param name="mvcRenderCommandName" value="/deployUploadAction" />
</portlet:actionURL>
            
<form action="${uploadURL }" method="post" enctype="multipart/form-data" style="margin-top:1em;">
            <input type="file" name="file" /><br>
            <input type="submit" value="Upload Model" class="btn" />
</form>
<hr class="soften" />

其中,上傳form的action為portlet:actionURL,它的name就是在portlet類中的方法名,即deployUploadAction

接下來開發action代碼

對應的上傳處理代碼段deployUploadAction:

public void deployUploadAction(ActionRequest actionRequest, ActionResponse actionResponse) throws Exception{

        UploadPortletRequest upr = PortalUtil.getUploadPortletRequest(actionRequest);
        String fileFieldName = "file";
        
        if (upr.getSize(fileFieldName) == 0)
        {
            throw new Exception("空文件!");
        }
        String fileName = upr.getFileName(fileFieldName);
        try {
            // 得到輸入流(字節流)對象
            InputStream fileInputStream = upr.getFileAsStream(fileFieldName);//file.getInputStream();
            // 文件的擴展名
            String extension = FilenameUtils.getExtension(fileName);
            // zip或者bar類型的文件用ZipInputStream方式部署
            DeploymentBuilder deployment = repositoryService.createDeployment();
            if (extension.equals("zip") || extension.equals("bar")) {
                ZipInputStream zip = new ZipInputStream(fileInputStream);
                deployment.addZipInputStream(zip);
            } else if (extension.equals("xml")){
                // xml類型的文件
                deployment.addInputStream(fileName, fileInputStream);
            }
            deployment.deploy();
            _log.info(fileName +" deploy success!");
        } catch (Exception e) {
            _log.error(fileName + " error on deploy process, because of file input stream");
        }

        String message = "BPMN file upload success!";
        actionRequest.setAttribute("RETURN_MESSAGE", message);
    }

 

運行界面:

首頁,一開始有7個流程模型。

上傳xml文件,同時也支持zip、bar文件

上傳成功,部署模板后,發現多出了一個。

程序調試日志

 

Activiti的集成開發系列文章集合在這里:

http://www.cnblogs.com/starcrm/p/6047486.html

方便索引。

 

全部工程源代碼下載

http://download.csdn.net/detail/starcrm/9713027


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM