上一篇文章写了如果显示出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()