之前我已经能够下载一个zip文件,但是压缩发生在ASP服务器上。现在,我们已将此操作更改为另一台服务器(“进度”)。

目前,我正在接收表示一个zip文件的base64编码的字符串。但是如何将这个字符串转换为zipfile。在下面找到之前使用的代码,我可以重用代码吗?

MemoryStream outputStream = new MemoryStream();
outputStream.Seek(0, SeekOrigin.Begin);

using (ZipFile zip = new ZipFile())
{
   foreach (string id in idArray)
   {
        string json = rest.getDocumentInvoice(Convert.ToInt32(id));
        byte[] file = json.convertJsonToFile();
        zip.AddEntry("invoice" + id + ".pdf", file);
   }
    zip.Save(outputStream);
}


outputStream.WriteTo(Response.OutputStream);
Response.AppendHeader("content-disposition", "attachment; filename=invoices.zip");
Response.ContentType = "application/zip";
return new FileStreamResult(outputStream, "application/zip");


我不知道如何将字符串转换为zip文件。在此先感谢您的帮助

最佳答案

通过执行以下操作将base64转换为字节数组:

Convert.fromBase64String(strBase64);


然后我找到了一篇可以轻松下载zipfile的文章

Download file of any type in Asp.Net MVC using FileResult?

本文建议:

public FileResult Download()
{
    string base64 = getBase64ZIP();
    byte[] byteArray = Convert.fromBase64String(base64);
    return File(byteArray, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
}

10-07 12:18