我试图搜索并下载上传到数据库的文件,我可以从数据库中检索文件。 下载单个文件但无法一次下载多个文件,我已经阅读了有关下载为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();
}
}
答案 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[]