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

对二进制写入解析问题
大神们,小弟新学asp.net,今天在遇到一个对二进制图片进行输出的问题中遇到了麻烦,希望大神们能帮一下忙,小弟感激不尽。

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>输出二进制图像</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
    </form>
</body>
</html>

下面是后台c#代码

public partial class _Default : System.Web.UI.Page 
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //打开图片文件,并存在文件流中
        FileStream stream = new FileStream(Server.MapPath("picture.gif"), FileMode.Open);
        long FileSize = stream.Length;//获取流的长度
        byte[] Buffer = new byte[(int)FileSize];//定义一个二进制数组
        stream.Read(Buffer, 0, (int)FileSize);//从流中读取字节块并将该数据写入给定缓冲区中
        stream.Close();//关闭流
        Response.BinaryWrite(Buffer);//将图片输出在页面上
    }
}


然后运行后firefox打开为乱码:

之后我用ie查看正常

然后在firefox中查看页面信息发现

是iis设置问题还是firefox解析问题呢?希望各位大神能够帮助小弟,感激不尽!
Firefox

------解决方案--------------------
Response.ContentType = "image/gif";
------解决方案--------------------
Response.ContentType = "image/gif";