How to handle and delete “forgotten” uploaded files?

后端 未结 1 1544
我寻月下人不归
我寻月下人不归 2020-12-22 04:38

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.

相关标签:
1条回答
  • 2020-12-22 05:18

    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.

    0 讨论(0)
提交回复
热议问题