如何在MVC asp.net中的客户端PC上完全下载后删除文件

use*_*986 2 .net asp.net-mvc download asp.net-mvc-3

我已经在客户端使用getCSV函数返回csv文件但我想在客户端下载完成后删除文件

我的功能

Public Function GetCSVFile(ByVal listSeperator As String) As CSVResult
    Dim result As Boolean
    Dim Service As New Service()
    Dim types As IList(Of ProductType) = Service.GetAllWithAllLocalizedNames(New ListOptions(Name", OrderByDirection.Ascending, 1, -1))
    Dim path As String, colname As String
    colname = Settings.GetLanguage()
    path = Common.GetLocalizeDataPath()
    Dim seprator As String = Common.GetListSepratorForCSV(listSeperator)
    Dim cs As New CSVGenerator(path, colname, seprator)
    result = cs.CreateCSVFile(types)
    If result Then
        Return New CSVResult With {.FileName = "Sample.csv", .Path = "~/Mydir/Sample.csv"}
    Else
        Return New CSVResult With {.FileName = "Error.csv", .Path = "~/Mydir/Error.csv"}
    End If
End Function
Run Code Online (Sandbox Code Playgroud)

小智 6

只有在您刷新响应时才对我有用.属性过滤器应如下所示

    public class DeleteTempFileResultFilter : ActionFilterAttribute
    {
        public override void OnResultExecuted(ResultExecutedContext filterContext)
        {
            string fileName = ((FilePathResult)filterContext.Result).FileName;

            filterContext.HttpContext.Response.Flush();
            filterContext.HttpContext.Response.End();

            System.IO.File.Delete(fileName);
        }
    }
Run Code Online (Sandbox Code Playgroud)