ska*_*kaz 5 asp.net-mvc download asp.net-mvc-3
我正在使用 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"));
}
}
Run Code Online (Sandbox Code Playgroud)
如果您的代码与您发布的代码类似,您实际上可能不需要临时文件。(这假设您的方法位于 a 内部Controller):
public ActionResult Download()
{
using (var stream = new MemoryStream())
{
CreateFile(this.DataContext, stream);
stream.Position = 0; // Not sure if this is necessary
return File(stream, MimeTypeUtil.GetMimeType("xlsx"), "MyFile.xlsx");
}
}
Run Code Online (Sandbox Code Playgroud)
FileStreamResult有点用词不当。它似乎接受任何Stream对象,而不仅仅是文件流。
| 归档时间: |
|
| 查看次数: |
2939 次 |
| 最近记录: |