上一篇文章写了如果显示出upload组件,下面代码为点击save按钮调用的方法:
protected void addFile(ActionRequest actionRequest) throws Exception { Hook hook = HookFactory.getInstance(); UploadPortletRequest uploadRequest = PortalUtil.getUploadPortletRequest(actionRequest); String title = ParamUtil.getString(actionRequest, "title"); int numOfFiles = ParamUtil.getInteger(actionRequest, "numOfFiles"); String fileName = ""; StringBuffer fileNames = new StringBuffer();
//多文件上传 if (numOfFiles == 0) { File file = uploadRequest.getFile("file"); fileName = uploadRequest.getFileName("file"); System.out.println("file:" + file); System.out.println("if (numOfFiles == 0) fileName:" + fileName); if ((file != null) && (FileUtil.getBytes(file) != null)) { byte[] bytes = FileUtil.getBytes(file); System.out.println("bytes:" + bytes.length); if ((bytes != null) && (bytes.length > 0)) { hook.addFile( _COMPANY_ID, _PORTLET_ID, _GROUP_ID, _REPOSITORY_ID, fileName, _FILE_ENTRY_ID, _PROPERTIES, new Date(), _TAGS_ENTRIES, bytes); fileNames.append(fileName + ","); } } }
//传统方式上传 else { for (int i = 1; i <= numOfFiles; i++) { File file = uploadRequest.getFile("file" + i); fileName = uploadRequest.getFileName("file" + i);
FileUtil.getBytes(file)); if ((file != null) && (FileUtil.getBytes(file) != null)) { byte[] bytes = FileUtil.getBytes(file); if ((bytes != null) && (bytes.length > 0)) { hook.addFile( _COMPANY_ID, _PORTLET_ID, _GROUP_ID, CounterLocalServiceUtil.increment(), fileName, _FILE_ENTRY_ID, _PROPERTIES, new Date(), _TAGS_ENTRIES, bytes); fileNames.append(fileName + ","); byte[] fileContent = hook.getFile(_COMPANY_ID, 0, fileName); } } } } actionRequest.setAttribute("fileNames", fileNames.toString()); } private static final String _PORTLET_ID = "workflow_WAR_workflowportlet"; private static final long _COMPANY_ID = 0; private static final long _FILE_ENTRY_ID = 0; private static final long _GROUP_ID = 0; private static final String _PROPERTIES = StringPool.BLANK; private static final long _REPOSITORY_ID = 0; private static final String[] _TAGS_ENTRIES = new String[0];
在processAction()里调用addFile()
