c# - ZipArchive 在来自 web 服务的列表中创建无效的 zip 文件
问题描述
我在获取压缩文件时遇到问题。
Web 服务为我提供了正确的文件,例如 www.XYP.com/GetFile?=1234 ,当我打开 URL 时,会自动下载文件,但是在我压缩此文档后,它的文件不正确,这些文件被破坏
我的代码在这里:
private void CreatedZipFile(Dictionary<int, string> listChecked)
{
using (MemoryStream memoryStream = new MemoryStream())
{
using (ZipArchive archive = new ZipArchive(memoryStream, ZipArchiveMode.Create, true))
{
foreach (KeyValuePair<int, string> kvp in listChecked)
{
ZipArchiveEntry demoFile = archive.CreateEntry(kvp.Key.ToString() + kvp.Value.ToString() + ".pdf");
string strDownLoad = System.Configuration.ConfigurationManager.AppSettings["GETFILESERVICES"] + kvp.Key.ToString();
WebService control = new WebService();
var clientnew = new System.Net.WebClient().DownloadData(strDownLoad);
using (var entryStream = demoFile.Open())
{
using (StreamWriter streamWriter = new StreamWriter(entryStream))
{
streamWriter.BaseStream.Write(clientnew, 0, clientnew.Length);
streamWriter.Close();
}
}
}
}
byte[] bytesInStream = memoryStream.ToArray();
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "attachment; filename=file.zip");
Response.Buffer = true;
Response.Clear();
Response.BinaryWrite(bytesInStream);
Response.Flush();
//MemoryStream.WriteTo(Response.OutputStream); //works too
Response.End();
}
}
感谢您的帮助或任何建议,
解决方案
推荐阅读
- r - 使用逗号分隔的字符串查找数据集变量中的所有项目
- javascript - 另一个 Promise 的 .then() 内的 for-each 循环内的 Promise 链
- java - 多种类型的杰克逊反序列化接口
- r - R shapefile 找不到并加载问题
- android - getExternalFilesDirs 不返回 SD 卡,仅返回内部/内置存储
- java - 终止 AWS Lambda 函数的上下文
- python - 将字节从 Bash 传递到 Python
- r - 在 R 中,有没有办法计算一个事件结束和另一个事件开始之间的天数?
- python-3.x - 在Qt(PySide2)的主线程上调用函数的简单方法
- java - 为什么 NPM 包会导致 docker-compose 失败(已经工作了一年多)?