How to delete file after download with ASP.NET MVC?
asp.net-mvc, c#
Solution
You could create a custom actionfilter for the action with an OnActionExecuted Method that would then remove the file after the action was completed, something like
public class DeleteFileAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
// Delete file
}
}
then your action has
[DeleteFileAttribute]
public FileContentResult GetFile(int id)
{
...
}
Problem
I want to delete a file immediately after download, how do I do it? I've tried to subclass `FilePathResult` and override the `WriteFile` method where I delete file after ``` HttpResponseBase.TransmitFile ``` is called, but this hangs the application. Can I safely delete a file after user downloads it?