I have a form to upload different kind of files. I need to ask questions according to the uploaded file type. For instance, if the file is a pdf, I need to ask the author.
Keep track of those unconfirmed uploaded files in a @SessionScoped
bean and use @PreDestroy to perform cleanup.
Kickoff example:
@SessionScoped
public class UserFileManager {
private List<File> unconfirmedUploadedFiles;
@PostConstruct
public void init() {
unconfirmedUploadedFiles = new ArrayList<>();
}
public void addUnconfirmedUploadedFile(File unconfirmedUploadedFile) {
unconfirmedUploadedFiles.add(unconfirmedUploadedFile);
}
public void confirmUploadedFile(File confirmedUploadedFile) {
unconfirmedUploadedFiles.remove(confirmedUploadedFile);
}
@PreDestroy
public void destroy() {
for (File unconfirmedUploadedFile : unconfirmedUploadedFiles) {
unconfirmedUploadedFile.delete();
}
}
}
Do note that you shouldn't be storing the file content in server's memory. It will blow up the server sooner or later. Rather store them on disk and pass around File
references.