当流文件用asp.net MVC 3下载完成时执行一些操作

本文关键字:完成时 下载 执行 操作 MVC 文件 asp net | 更新日期: 2023-09-27 18:15:00

我使用asp.net MVC 3,当在视图中单击链接时,我从控制器返回一个FileResult(它是从流中获取的,而不是物理文件)。我想要实现的是当文件完成下载时做一些事情。有可能做到吗?因为我现在不能在返回文件....

之后写任何东西

提前感谢!吉尔勒莫。

当流文件用asp.net MVC 3下载完成时执行一些操作

创建自己的文件结果或派生现有文件:

public class MyFileStreamResult : FileStreamResult 
{
    // [.. constructors here ..]

    public override void ExecuteResult(ControllerContext context) 
    {
        base.ExecuteResult(context);
        // do something here
    }
}

然后从你的行动中得到结果:

return new MyFileStreamResult(myStream, "application/octet-stream");

您无法知道文件何时下载或下载是否成功。

一个解决方案是显示一个"你现在正在下载"或"你的下载将在几秒钟后开始"的页面,并使用隐藏的iframe或JavaScript开始文件下载。