ASP.NET中读取数据库中的图片

下面这个代码演示了如何在ASP.NET中读取数据库中的图片(二进制类型),并且输出到页面上。

我们这里使用的ashx的机制。同时使用了ImageConverter这个类型做图形转换。

namespace WebApplication1

{



    using System.Web;

    using System.Web.Services;



    using System.Data.SqlClient;

    using System.Drawing;



    /// <summary>

    /// $codebehindclassname$ 的摘要说明

    /// </summary>

    [WebService(Namespace = "http://tempuri.org/")]

    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

    public class EmployeePhoto : IHttpHandler

    {



        public void ProcessRequest(HttpContext context)

        {

            context.Response.ContentType = "image/jpeg";



            using (SqlConnection conn = new SqlConnection("server=(local);database=northwind;integrated security=true;"))

            {

                conn.Open();

                using (SqlCommand cmd = conn.CreateCommand())

                {

                    cmd.CommandText = "SELECT Photo FROM Employees WHERE EmployeeId=1";

                    SqlDataReader reader = cmd.ExecuteReader();

                    reader.Read();

                    byte[] buffer = (byte[])reader[0];

                    ImageConverter converter = new ImageConverter();

                    Bitmap bitmap = (Bitmap)converter.ConvertFrom(buffer);

                    bitmap.Save(context.Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);

                    reader.Close();

                    conn.Close();

                    context.Response.End();

                }

            }

        }



        public bool IsReusable

        {

            get

            {

                return false;

            }

        }

    }

}

你可能感兴趣的:(asp.net)