string strImgID = Request.QueryString["ImgID"];
string nstrSql = "Select TopImg From T_EPub_Img Where Img_ID='"+strImgID+"'";

nclsDBData.OpenDB();
SqlCommand ncmdCommand = new SqlCommand(nstrSql,nclsDBData.Conn);
SqlDataReader ndrReader =ncmdCommand.ExecuteReader();
if(ndrReader.Read())
{
Response.Clear();
Response.ContentType = "image/jpeg";
Response.BinaryWrite( (byte[]) ndrReader[0] );
Response.End();
}
ndrReader.Close();
nclsDBData.CloseDB();

解决方案 »

  1.   

    原来我用Response.BinaryWrite读图片时,前面不能出现Response.Write,
    而且会把其它的东西如文字覆盖了。
    后来在别人的建议下,
    我把读图片的专门做了一个页面,
    然后通过Response.Write("<img src=index.aspx?ImgID=**>")来读取图片。
      

  2.   

    我这样实现过
    显示图片作为一个单独的页面,如showimg.aspx
    在要显示图片的页面中如此使用<img src='showimg.aspx?ImgID=1'>
    你可以这样试试看
      

  3.   

    加上这个呢?
    Response.AddHeader("Content-Disposition", "inline; filename=" + imageid + ".gpj");
      

  4.   

    没有这么复杂吧!我直接
    while(dr.Read())
    {
    Response.BinaryWrite( (byte[]) dr["side"] );
    Response.Write("<br>");
    }
      

  5.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Clear();
    Response.ClearHeaders();
    Response.Buffer = false;
    Response.ContentType = dsFile.Tables[0].Rows[0]["FileType"].ToString();
    Response.BinaryWrite(byteFileContent);
    Response.Flush();
    Response.End();
    }我怎么没发现有这样的问题?