C# 将文档转换为zip文件,添加文件并下载,但打开时出错

C# 将文档转换为zip文件,添加文件并下载,但打开时出错,c#,asp.net,zip,zipfile,ziparchive,C#,Asp.net,Zip,Zipfile,Ziparchive,已成功将文档添加到zip添加条目并下载 它 但是当我打开Doc1,Doc2,如果我下载 仅doc1(下载并查看成功) 如果我尝试doc2,它会下载,但是 打开(无法打开)文件时,该文件似乎不是有效文件 archieve,请重试(这是打开时的消息)。如果我都查了 下载成功,我可以打开它 非常感谢您的帮助 ZipFile zip = new ZipFile(); foreach (GridDataItem item in RadGridSearchResults.MasterTableView.I

已成功将文档添加到zip添加条目并下载 它

  • 但是当我打开Doc1,Doc2,如果我下载 仅doc1(下载并查看成功)

  • 如果我尝试doc2,它会下载,但是 打开(无法打开)文件时,该文件似乎不是有效文件 archieve,请重试(这是打开时的消息)。如果我都查了 下载成功,我可以打开它

  • 非常感谢您的帮助

    ZipFile zip = new ZipFile();
    
    foreach (GridDataItem item in RadGridSearchResults.MasterTableView.Items)
    {
        int documid;             
        bool chec;
        CheckBox check = (CheckBox)item.FindControl("CheckBox1");
        DocDetails dd = new DocDetails();
        if (check.Checked == true)
        {
            documid = Convert.ToInt32(item["DOCUMENT_ID"].Text);
            Document document = Document.GetDocumentByDocumentId(documid);    
            zip.AddEntry(document.DocumentName, document.DocumentFileImage);
    
        }                      
    }
    
    var zipMs = new MemoryStream();
    zip.Save(zipMs);
    
    byte[] fileData = zipMs.GetBuffer();           
    zipMs.Seek(0, SeekOrigin.Begin);
    zipMs.Flush();
    
    Response.Clear();
    Response.AddHeader("content-disposition", "attachment;filename=docs.zip ");
    Response.ContentType = "application/zip";
    Response.BinaryWrite(fileData);
    Response.End();
    

    我通过使用

    using ICSharpCode.SharpZipLib.Zip;
    

    通过使用(使用Ionic.Zip;)此数据在内部损坏,甚至没有引发异常

    我通过使用

    using ICSharpCode.SharpZipLib.Zip;
    

    通过使用(使用Ionic.Zip;)此数据会在内部损坏,甚至不会引发异常

    我认为,直接从数据库下载文件并添加到Zip会导致内部错误,是否可以下载到本地文件夹并将完整文件夹转换为Zip,然后下载并清除文件夹数据,直接从数据库下载文件并添加到zip导致内部错误,是否可以下载到本地文件夹并将完整文件夹转换为zip,然后下载并清除文件夹数据