ReadImage.aspx页面
单独输出二进制流图片的页面,引用传来的参数 ImageID,如 ReadImage.aspx?ImageID=0001
写法1:
if(!IspostBack)
{
string sqlconnstr=ConfigurationManager.ConnectionStrings["strconn"].connectionstring.Tostring();
using
(SqlConnection conn =new SqlConnection(sqlconnstr))
{
int ImgID = Convert.ToInt32(Request.QueryString["ImageID"]);
conn.Open();
SqlCommand cmd
=new SqlCommand();
cmd.Connection
= conn;
cmd.CommandText
="select User_ImgContent from tbl_FriendsUser where User_ImgId=@ImgId";
cmd.parameters.add()=ImgId;
SqlDataReader reader
= cmd.ExecuteReader();
reader.Read();
Response.ContentType
="application/octet-stream"; //application/octet-stream表示二进制传输
Response.BinaryWrite((Byte[])reader["User_ImgContent"]);
Response.End();
conn.Close();
reader.Close();
Response.Write(
"读取成功");
}


byte[] ImageData = (byte[])sqlReader["照片"];
Response.BinaryWrite(ImageData);

写法2
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
public partial class ReadImage : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            int ImgID = Convert.ToInt32(Request.QueryString["ImageID"]); //ImgID为图片ID
            //建立数据库链接
            SqlConnection Con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Tasks.mdf;Integrated Security=True;User Instance=True");
            String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
            SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
            CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
            Con.Open();
            SqlDataReader SqlReader = CmdObj.ExecuteReader();
            SqlReader.Read();
            Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型
            //输出图象文件二进制数制
            Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);
            Response.End();
            Con.Close();
        }
    }
}

需要引用图片的页面 showImage.aspx
添加Image 控件引用要显示的图片的 ImageUrl 地址

<repeater ....>
<ItemTemplate>
        <asp:Image ID="Image1" runat="server" ImageUrl='<%#"ReadImage.aspx?ImageID="+ DataBinder.Eval(Container.DataItem,"ImageID") %>' width="250px" height="250px" />
</ItemTemplate>
</repeater>

后台代码:
    protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection Con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Tasks.mdf;Integrated Security=True;User Instance=True");
        String SqlCmd = "select * from ImageStore";
        SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
        Con.Open();
        SqlDataReader reader;
        reader = CmdObj.ExecuteReader();
        Repeater1.DataSource = reader;
        Repeater1.DataBind();
    }


posted on 2010-10-23 18:49  露水丛生  阅读(926)  评论(0)    收藏  举报