0

注:私は自分で問題を解決しました。以下の回答を参照してください。

ASP.NET C# 4.0 WebForm でZipStorerを使用してファイルを圧縮しています。

MemoryStream で Zip を作成し、httpResponse を使用して送信した後、クライアント ユーザーはファイルを Zip ファイルとして開くことができませんでした。

任意のヒント?ありがとう。

以下は私のコードです:

string text = GetLongText();
byte[] ba = Encoding.UTF8.GetBytes(text);
using (MemoryStream ms = new MemoryStream())
{
    using (ZipStorer zip = ZipStorer.Create(ms, "My Zip File"))
    {
        zip.AddStream(ZipStorer.Compression.Deflate, "MyText.txt", new MemoryStream(ba), DateTime.Now, "My Text");

        Response.Clear();
        Response.AppendHeader("content-disposition", "attachment; filename=MyZip.zip");
        Response.ContentType = "application/zip";
        ms.WriteTo(Response.OutputStream);
        Response.End();
    }
}
4

1 に答える 1

2

私は自分で問題を解決しました。以下はコードです:

string text = GetLongText();
byte[] ba = Encoding.UTF8.GetBytes(text);
using (MemoryStream ms = new MemoryStream())
{
    using (ZipStorer zip = ZipStorer.Create(ms, "My Zip"))
    {
        zip.AddStream(ZipStorer.Compression.Deflate, "text.txt", new MemoryStream(ba), DateTime.Now, "My Text");
    }
    Response.AppendHeader("content-disposition", "attachment; filename=MyZip.zip");
    Response.ContentType = "application/zip";
    Response.BinaryWrite(ms.ToArray());
    Response.End();
}
}
于 2013-12-23T12:24:19.463 に答える