我尝试上传一些文件,然后通过oncomplete
重定向到另一个页面
问题是oncomplete
仅在第一个文件上传后才起作用
<p:fileUpload mode="advanced"
label="#{FileMessages.file_add_file_lbl_Select_File}"
fileUploadListener="#{fileAddFileAction.upload}"
oncomplete="redirect(#{fileAddFileAction.groupId});"
multiple="true"
allowTypes="/(\.|\/)(txt|doc|docx|pdf)$/"
widgetVar="fileUplaod" >
</p:fileUpload>
Java脚本功能:redirect(groupId)
function redirect(groupId) {
var url = "/network/group/files.html?gId="+groupId;
$(location).attr('href',url);
}
bean.java的
public void upload(FileUploadEvent event) {
UploadedFile uploadedFile = event.getFile();
try {
String thumbnail = getDestination() + uploadedFile.getFileName();
String[] filetype = thumbnail.split("\\.");
String newfilename = Calendar.getInstance().getTimeInMillis() + "." + filetype[1];
SystemFile file = new SystemFile();
file.setAccount(getActor().getAccount());
file.setCtime(new Date());
file.setName(newfilename);
file.setPath(getDestination());
file.setFileType(FileUtil.checkFileType(filetype[1]));
file.setOriginalName(uploadedFile.getFileName());
getFileService().saveSystemFile(file);
copyFile(getDestination() + newfilename, uploadedFile.getInputstream());
copyFile(getDestination() + newfilename, uploadedFile.getInputstream());
} catch (IOException ex) {
Logger.getLogger(FileAddFileAction.class.getName()).log(Level.SEVERE, null, ex);
}
}
最佳答案
似乎是一个已知问题:http://code.google.com/p/primefaces/issues/detail?id=3836
用户已在此页面上完成了自定义补丁:
<p:ajax event="fileUploadsComplete" listener="#{filesBean.done}"/>
public void done(FileUploadsCompleteEvent event) {
System.out.println("done");
}