之前我已经能够下载一个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);
}