这是我的代码
private void sendToClient(Dictionary<string, string> reportDic)
{
Response.Clear();
Response.BufferOutput = false;
String ReadmeText = "some text";
Response.ContentType = "application/zip";
Response.AddHeader("content-disposition", "filename=" + "filename.zip");
using (ZipFile zip = new ZipFile())
{
zip.AddEntry("Readme.txt", ReadmeText);
zip.Save(Response.OutputStream);
}
Response.Close();
}
在这一点上,我只是试图返回一个 zip 文件,其中包含 zip 内的 readme.txt 文档,文档内带有“一些文本”字样。
我得到的是一个名为 filename.zip(expected) 的 zipfile,其中包含一个文档 readme.txt(expected),文档内没有文本(unexpected)。
此代码几乎是此处示例的逐字记录。这让我觉得其他人遇到了这个确切的问题。
我的最终目标是做这样的事情。
private void sendToClient(Dictionary<string, string> reportDic)
{
Response.BufferOutput = false;
Response.ContentType = "application/zip";
Response.AddHeader("content-dispostion", "filename=text.zip");
Response.ContentEncoding = Encoding.Default;
Response.Charset = "";
using (ZipFile zip = new ZipFile())
{
foreach (string key in reportDic.Keys)
{
zip.AddEntry(key, reportDic[key]);
}
zip.Save(Response.OutputStream);
}
Response.Close();
}
将三个字符串作为文件添加到 zip 文件中,但现在我将满足于让示例工作。
有人有什么建议吗?
谢谢
--UPDATE-- 这应该可以工作,事实上,如果我将它复制到一个新项目中,它就像宣传的那样工作,我的项目中肯定有 dll 的有毒组合或一些损坏,这是模糊的或什么的。精彩的。