首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试解压缩时,Zip文件显示为空

尝试解压缩时,Zip文件显示为空
EN

Stack Overflow用户
提问于 2018-02-28 23:04:23
回答 1查看 698关注 0票数 0

我使用以下代码下载存储在我的数据库中的一组文件,方法是将它们放入一个zip文件中:

代码语言:javascript
复制
SqlDataAdapter adp = new SqlDataAdapter("select FILE_NAME, FILE, content_type from tbl where id = " + "168", Configuration.getSQLConnString("ConnStr"));
DataTable dtFiles = new DataTable();
adp.Fill(dtFiles);

if (dtFiles.Rows.Count > 0)
{
    using (var zipStream = new ZipOutputStream(Response.OutputStream))
    {
        foreach (DataRow dr in dtFiles.Rows)
        {
            byte[] bytes;
            string fileName, contentType;
            fileName = dr["File_Name"].ToString();
            bytes = (byte[])dr["File"];
            contentType = dr["Content_Type"].ToString();
            Response.Clear();
            Response.Buffer = true;
            Response.Charset = "";
            Response.Cache.SetCacheability(HttpCacheability.NoCache);
            Response.AddHeader("Content-Disposition", "attachment; filename=Files.zip");
            Response.ContentType = "application/zip";
            byte[] fileBytes = bytes;
            ZipEntry fileEntry = new ZipEntry(ZipEntry.CleanName(fileName));
            fileEntry.Size = fileBytes.Length;
            zipStream.SetLevel(3);
            zipStream.PutNextEntry(fileEntry);
            zipStream.Write(fileBytes, 0, fileBytes.Length);
            zipStream.CloseEntry();   
        }        
        zipStream.Flush();
        zipStream.Close();
    }
}

生成并下载了zip文件,它还显示了大约2Mb的大小,但是当我解压缩zip文件时,它显示了以下错误:

有人能指出我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-03-01 04:57:14

ZipOutputStream一点也没帮到我,试着打破我的头,但没有任何帮助。然后我发现了一个名为DotNetZip的库,下面是将存储在数据库中的文件下载到压缩文件中的代码:

代码语言:javascript
复制
using (ZipFile zip = new ZipFile())
{
    foreach (DataRow dr in dtResumes.Rows)
    {
        zip.AddEntry(dr["File_Name"].ToString(), (byte[])dr["Resume"]);
    }

    zip.Save("C:\\Test\\MyZipFile.zip");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49032630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档