下载ASP.NET MVC C#中字节数组列表中包含的多个文件
发布时间:2020-12-15 19:53:08 所属栏目:asp.Net 来源:网络整理
导读:我正在开发一个ASP.NET MVC 5应用程序,我写了一个代码,允许我下载存储在SQL Server数据库中的文件作为varbinary,我可以用这个下载单个文件: public JsonResult PrepareSingleFile(int [] IdArray){ ImageContext _contexte = new ImageContext(); var respo
我正在开发一个ASP.NET MVC 5应用程序,我写了一个代码,允许我下载存储在SQL Server数据库中的文件作为varbinary,我可以用这个下载单个文件:
public JsonResult PrepareSingleFile(int [] IdArray) { ImageContext _contexte = new ImageContext(); var response =_contexte.contents.Find(IdArray.FirstOrDefault()); //byte[] FileData = Encoding.UTF8.GetBytes(response.image.ToString()); byte[] FileData = response.image; Session["data"] = FileData; Session["filename"] = response.FileName; return Json(response.FileName); } public FileResult DownloadSingleFile() { var fname = Session["filename"]; var data = (byte[]) Session["data"]; //return File(data,"application/pdf"); return File(data,System.Net.Mime.MediaTypeNames.Application.Pdf,fname.ToString()+".pdf"); } 但现在我想下载多个文件,所以我将每个文件的数据作为字节数组并将这些字节数组放入List< byte []>我想将这些文件作为zip文件下载,那么我该怎么做呢? 我试过这个: File(data,"the Mime Type","file name.extension") 但是当数据是List< byte []>时它不起作用. 解决方法
您可以使用.NET framework 4.5中提供的
ZipArchive类来实现.
您可以在控制器中添加一个接受List< byte []>的方法.参数然后将每个byte []转换为一个内存流并将其放入像这样的zip文件中, public FileResult DownloadMultipleFiles(List<byte[]> byteArrayList) { using (MemoryStream ms = new MemoryStream()) { using (var archive = new ZipArchive(ms,ZipArchiveMode.Create,true)) { foreach(var file in byteArrayList) { var entry = archive.CreateEntry(file.fileName +".pdf",CompressionLevel.Fastest); using (var zipStream = entry.Open()) { zipStream.Write(file,file.Length); } } } return File(ms.ToArray(),"application/zip","Archive.zip"); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .NET Core采用的全新配置系统[8]: 如何实现配置与源文件的同
- asp.net-mvc – 模型绑定到MVC 3中可能存在非顺序索引的列表
- asp.net-mvc – 动态生成sitemap.xml
- httphandler – AjaxToolkit IIS7 Asp.Net 4.0:未定义Sys;
- ASP.NET应用程序池回收问题
- asp.net – 检测浏览器刷新
- asp.net-mvc – ASP.NET MVC在自定义操作过滤器中查找当前用
- asp.net – 服务器随机返回状态码为200的空响应
- asp.net – 可以在web.config中添加响应http头吗?
- asp.net-mvc-3 – ASP.Net MVC 3 – 编辑器模板的客户端不显