いくつかのファイルをアップロードしてから別のページにリダイレクトしようとすると、最初のファイルがアップロードされた直後にのみ機能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>
JavaScript 関数: リダイレクト (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);
}
}