日期:2014-05-17  浏览次数:20568 次

本页面二进制流输出图片
有个页面 页面上有些信息(一些文本信息) 我在Page_Load
代码如下:
protected void Page_Load(object sender, EventArgs e)
  {
  FileStream fs = new FileStream(@"C:\Documents and Settings\Developer\桌面\94f6b0begw1dnw55ez8dbg.gif", FileMode.Open, FileAccess.Read);
  int fslength=(int)fs.Length;
  byte[] bimg = new byte[fslength];
  fs.Read(bimg, 0, fslength);
  fs.Close();
  Response.ClearContent();
  Response.ContentType = "image/gif";
  Response.OutputStream.Write(bimg, 0, fslength);
  Response.End();
  }
用二进制流输出图片 但是访问这个页面的时候显示就只有这张图片 页面上本来的东西就不见了 求大神帮帮忙 怎么才显示本页面的所有信息及输出的图片

------解决方案--------------------
image.syc="1.gif";显示
或嵌套img src="xx.aspx?type=image">
Page_Load:
if(Request.QueryString["type"]=="image")
{
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
Response.End();
}

------解决方案--------------------
<img src="a.aspx" />
--------------------------
一个图片就要求一个响应的http输出流
------解决方案--------------------
方法用错了,你写方法本身就只能输出一张图片而不是整个html

如果是本页连图片带html一起输出的应该是把图片流用base64编码以后,加到img标签里面,不过我们不建议如此,无端让html变胖了

你应该如10楼那样,采用另外一个页面输出才是正解
------解决方案--------------------
页面的Type都改了Response.ContentType = "image/gif"; 只能输出图片了。

------解决方案--------------------
把你输出二进制图片的代码放在单独的页面里面用来输出图片。例如页面名称为Image.aspx。
再绑定到空间上 <img id="image" src="Image.aspx" />