Response.WriteFile - 写出一个字节流

时间:2010-09-21 18:23:32

标签: c# asp.net

是否可以使用Response.Write / WriteFile从动态创建的位图写入http响应流而不将图像保存到硬盘驱动器?

4 个答案:

答案 0 :(得分:11)

您可以使用MemoryStream并将其分配给Response.OutputStream,或者在保存位图时直接使用Response.OutputStream

this页面上的文档中有一个示例,但它只是将位图直接保存到输出流中:

// Set the correct content type, so browser/client knows what you are sending
Response.ContentType = "image/jpeg";
Response.Clear();

Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmp);

bmp.Save(Response.OutputStream, ImageFormat.Jpeg);

答案 1 :(得分:3)

如果您的位图存储在byte[]中,您也可以直接将其转储到Response.BinaryWrite(myByteArray);,只要您正确设置了内容类型,长度和处置(如@arx所述) )。

答案 2 :(得分:2)

Response.BinaryWrite怎么样?

答案 3 :(得分:0)

是。确保正确设置内容类型,它应该可以正常工作。