Search code examples
c#asp.netajaxcontroltoolkit

ASP.NET - Store Temporary Files


I have a web form that allows users to upload files while opening a ticket in our system. The upload is done using the "ajax control toolkit" asyncFileUpload control.

The idea is to have files saved to a temp directory and only save them to the permanent location when the user hits the "commit" button.

I would like to be able to get rid of temp files that are no longer relevant (e.g. the user leaves the page open for a month without posting the form).

What would be the best way to not keep temp files forever. Maybe keeping them files in the session? Maybe keeping them in the viewstate?

I could add some JS to the page with a timeout and add some code that runs when the user leaves the page. But these ideas are client side solutions. I wouldn't want someone to tamper with the code and leave me rubbish on my system.

Any other idea?

Thanks, Summerbulb


Solution

  • My suggestion is to add an On_SessionEnd handler in Global.asax and delete the temp files when the user session ends. You can name the temp files appending the SessionID to them (or prepending the SessionID, whatever you want) and that way you would only delete the files for the user whose session has ended. You could also add an On_Application_End handler to Global.asax to delete ALL files in the temp directory.