gpt4 book ai didi

asp.net-mvc - 使用 FileStreamResult 删除临时文件

转载 作者:行者123 更新时间:2023-12-01 22:18:13 26 4
gpt4 key购买 nike

我正在使用 MVC3 返回在代码中创建的临时文件。然后,我使用 FileStreamResult 将此文件流式传输回客户端。但是,由于这是我不再需要的临时文件,我想清理该文件。我不知道该怎么做,因为我在流式传输时已经点击了 return 语句。谢谢。

public FileStreamResult Download()
{
string filename = Path.GetTempFileName();
using (FileStream stream = new FileStream(filename, FileMode.OpenOrCreate))
{
CreateFile(this.DataContext, stream);
}

using (FileStream outputStream = new FileStream(filename, FileMode.Open))
{
HttpContext.Response.AddHeader("content-disposition", "attachment; filename=MyFile.xlsx");
return new FileStreamResult(outputStream,MimeTypeUtil.GetMimeType("xlsx"));
}
}

最佳答案

似乎非常适合创建自定义 ResultFilter 。您可以直接子类化ActionFilterAttribute。类似的事情(缺少文件名检测的一部分)

public class ResultFilter : ActionFilterAttribute
{
public override void OnResultExecuted(ResultExecutedContext filterContext)
{
string fileName = //((FileStreamResult)filterContext.Result). ???

File.Delete(fileName);
}
}

您可以通过子类化 FileStreamResult 来传递临时文件名来创建自定义 ActionResult。那么删除就变得微不足道了。

关于asp.net-mvc - 使用 FileStreamResult 删除临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7679313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com