Asp.net多个文件下载

时间:2015-04-17 10:22:13

标签: asp.net

我试图搜索并下载上传到数据库的文件,我可以从数据库中检索文件。 下载单个文件但无法一次下载多个文件,我已经阅读了有关下载为zip文件的信息,任何人都可以帮忙??????

     using (sampledbase dbcontext = new sampledbase ())
       {

           ZipFile zip = new ZipFile();
           long id = Convert.ToInt64(Request.QueryString["id"]);
           System.Nullable<long> fileid = id;
           var query = dbcontext.searchfile(ref fileid );

          foreach (var i in query)
           {
               byte[] binarydata = i.Data.ToArray();
               Response.AddHeader("content-disposition", string.Format("attachment; filename =\"{0}\"", i.Name));
               Response.BinaryWrite(binarydata);
               Response.ContentType = i.ContentType;
               Response.End();
           }
       }

1 个答案:

答案 0 :(得分:0)

我看到你正在使用ZipFile,所以你正朝着正确的方向前进。为了压缩文件,您可以将文件保存在目录中,并使用以下代码压缩目录:

string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
ZipFile.CreateFromDirectory(startPath, zipPath);

在您的情况下,查看dbcontext.searchfile()返回的数据类型,并使用StreamWriter之类的内容将内容保存到目录中。查看代码,类型似乎是byte [],您可以看到此链接以了解如何将字节保存在文件中:Write bytes to file

另一种解决方案是直接压缩字节[]:Create zip file from byte[]