【发布时间】:2022-04-22 20:23:25
【问题描述】:
我是 ASP.NET MVC 的新手,我正在尝试弄清楚如何压缩和下载存储在数据库中的文件。
我是否需要压缩文件,将它们保存在内存或服务器中,然后将该文件发送给用户。我宁愿不把它保存在服务器上。
型号:
public class Document
{
public int Id { get; set; }
public string Name { get; set; }
public string ContentType { get; set; }
public byte[] Content { get; set; }
}
控制器:
[HttpPost]
[Route("~/document/zip/{token}")]
public ActionResult DownloadZip(string token)
{
// EF6
var docs = db.Documents.ToList();
using (var memoryStream = new MemoryStream())
{
using (var archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
foreach (var doc in docs)
{
var file = archive.CreateEntry(doc.Name.ToString());
using (var streamWriter = new StreamWriter(file.Open()))
{
streamWriter.Write(doc.Name.ToString());
}
}
}
return File(memoryStream.ToArray(), "~/WebApplication/Documents", "xxxx.zip");
};
}
【问题讨论】:
-
什么问题?是的,你可以压缩文件。在满足用户请求后,您可以删除该文件。
标签: c# .net asp.net-mvc