1

次のコードを使用して、asp.net Web サイトのファイル フォルダーをダウンロードしました。

 string path = @"E:\sample.zip";
        FileInfo file = new FileInfo(path);
           int len = (int)file.Length, bytes;
             Response.ContentType = "text/html";  
          // Response.AddHeader "Content-Disposition", "attachment;filename=" + filename; 
             Response.AppendHeader("content-length", len.ToString());
           byte[] buffer = new byte[1024];

        using(Stream stream = File.OpenRead(path)) {
    while (len > 0 && (bytes =
        stream.Read(buffer, 0, buffer.Length)) > 0)
    {
        Response.OutputStream.Write(buffer, 0, bytes);
        len -= bytes;
    }
}

それは正常に動作します/...

しかし、私の問題は、ライブラリファイルに同じコードを使用したときです

FileInfo file = new FileInfo(ZipPath);
            int len = (int)file.Length, bytes;
            HttpResponse Response = new HttpResponse(TextWriter.Null);
            Response.ContentType = "text/html";
            Response.AppendHeader("content-length", len.ToString());
            byte[] buffer = new byte[1024];

            using (Stream stream = File.OpenRead(ZipPath))
            {
                while (len > 0 && (bytes =
                    stream.Read(buffer, 0, buffer.Length)) > 0)
                {
                    Response.OutputStream.Write(buffer, 0, bytes);
                    len -= bytes;
                }
            }
        }

それは私にエラーをスローします

カスタム TextWriter が使用されている場合、OutputStream は使用できません。

問題はその行にあると思います

 HttpResponse Response = new HttpResponse(TextWriter.Null);

解決策を教えてください

あなたの応答を待っています....

4

2 に答える 2

1

このコードで試すことができます

TextWriter sw = new StringWriter();
HttpResponse Response = new HttpResponse(sw);
于 2012-10-12T13:23:59.580 に答える
1

私は構造を次のように置き換えました

   HttpResponse response = HttpContext.Current.Response;

それはうまくいきます.....

ご支援いただきありがとうございます

于 2012-10-15T11:20:23.250 に答える