我使用的是ASP.NET,我更喜欢VB作为语言,但我应该能够根据自己的需要翻译C#。
我有一个字符串数组,我想将其作为单个文件发送到浏览器供用户保存。在搜索互联网时,将多个文件发送到浏览器的最常见解决方案是将它们压缩,并发送一个zip文件。
为此,我需要学习一些我不知道的事情;
1)我可以使用哪些工具/方法(最好内置于IIS7上运行的ASP.NET)来创建zip文件流以发送到浏览器?
2)我如何欺骗zip工具以为它从内存中的字符串中获取多个文件?我假设我需要创建文件流,但是如何告诉方法文件名是什么等等?
如果有一个与我需要的东西大致相似的例子,那就太好了。请指点我。
感谢您的帮助。
答案 0 :(得分:2)
方法可能是:
下面的代码示例:
ZipFile zipFile = new ZipFile();
int fileNumber = 1;
foreach(string str in strArray)
{
// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(contents);
MemoryStream stream = new MemoryStream(byteArray);
stream.Seek(0, SeekOrigin.Begin);
//add the string into zip file with a name
zipFile.AddEntry("String" + fileNumber.ToString() + ".txt", "", stream);
}
Response.ClearContent();
Response.ClearHeaders();
Response.AppendHeader("content-disposition", "attachment; filename=strings.zip");
zipFile.Save(Response.OutputStream);
zipFile.Dispose();