我以前做过这件事,但我不记得怎么做。在IIS应用程序(C#)中有一种方法可以告诉它发送所有对"文件的请求。关闭方法的特定URL。然后该方法可以设置"文件"在回应中。
这是一种避免将临时文件写入磁盘而是将其保存在内存中的方法,验证该文件的请求是否来自经过身份验证的用户,然后将该文件保存在内存中以供响应。
答案 0 :(得分:0)
您正在寻找的是FileResult
而不是来自控制器的ActionResult
(假设这里是ASP.NET MVC或Web API);更具体地说,您可能希望FileStreamResult
将数据存储在MemoryStream
或FileStream
中;或者带有二进制数组的FileContentResult
。
public FileResult GetFile(...)
{
var stream = new MemoryStream();
// Assign the data here
// ...
return new FileStreamResult(stream, "application/octet-stream")
{
FileDownloadName = "MyFile.dat",
};
}