I already have a stored proc call the retrieves the data based on an id... the recordset retrieved is one row with the photo and a few other text fields.
Please advise the necessary code to place in the codebehind file to display this photo. I am using <asp:label> tag for the positioning of the image.
Thanks!
-------------------------------------------
Re: Displaying image from database...
System.Configuration.Configuration rootWebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("/mysite");
connString = rootWebConfig.ConnectionStrings.ConnectionStrings["strDataSource"];
SqlConnection objConnection = new SqlConnection(connString.ConnectionString);
SqlDataAdapter objCommand = new SqlDataAdapter("SelectProfile", objConnection);
DataSet objDataSet = new DataSet();
objConnection.Open();
objCommand.SelectCommand.CommandType = CommandType.StoredProcedure;
objCommand.SelectCommand.Parameters.Add(new SqlParameter("@user_id", SqlDbType.Char, 50));
objCommand.SelectCommand.Parameters["@user_id"].Value = Request.Params["id"];
objCommand.Fill(objDataSet, "UserAccount");
byte[] fileData = (byte[])objDataSet.Tables["UserAccount"].Rows[0]["photo"];
int fileSize = fileData.Length;
Response.ClearContent();
Response.ClearHeaders();
Response.Clear();
Response.Buffer = false;
Response.ContentType = "image/JPEG";
Response.AddHeader("Content-Disposition", "attachment; filename=MyPhoto.jpg");
Response.AddHeader("Content-Length", fileSize.ToString());
Response.BinaryWrite(fileData);
objConnection.Close();
Response.End();
Re: Displaying image from database...
here are some code bits I have used in the past to get binary data from sql server, but I only know how to response write the data as the full output for a page and then reference it in the html, I would try a searching on google for actually binding binary image data to the page (not sure if it can be done), I seroiusly doubt that you will be able to bind to an asp:label
here is how I have done this in the past
html in an aspx page where you want to show an image from the database
<img src="GetImage.aspx?id=39" />
then you create a GetImage.aspx page that responses gif or jpg data
// get data from db
fileTitle = rs["FileTitle"].ToString();
fileSize = rs["FileSize"].ToString();
contentType = rs["ContentType"].ToString();
byte[] fileData = (byte[]) rs["FileData"];
// response output
Response.ClearContent();
Response.ClearHeaders();
Response.Clear();
Response.Buffer = false;
Response.ContentType = contentType;
Response.AddHeader("Content-Disposition", "attachment; filename=" + fileTitle);
Response.AddHeader("Content-Length", fileSize.ToString());
Response.BinaryWrite(fileData);
------------------------------------
本文讨论了如何在ASP.NET中从SQL Server数据库检索并显示图片。提供了详细的代码示例,包括使用存储过程获取图片数据,设置HTTP响应头以及将二进制数据发送到客户端的过程。
181

被折叠的 条评论
为什么被折叠?



