在数据库中处理image字段【把图片存储到数据库并显示出来】

方法简介:

 

保存图片

  1. 将图片将图片转换成byte[],并得到MIME类
    注:
            string mime = FileUpload1.PostedFile.ContentType;//获取MIME类型
            byte[] data = FileUpload1.FileBytes;//转换成byte[],在此方法有很多,不再一一列举
           
  2. 以参数化形式(参数化SQL语句或者存储过程)保存到数据库
    注:
           string sql = "insert into FileList(FileData,Mime)values(@FileData,@Mime)";
          

                    SqlParameter[] parameters = new SqlParameter[4];

                    parameters[0] = new SqlParameter("@FileData", SqlDbType.Image, int.MaxValue);
                    parameters[0].Value = data ;

                    parameters[1] = new SqlParameter("@Mime", SqlDbType.NVarChar, 50);
                    parameters[1].Value = mime ;

显示图片

  1. 将字段数据转换成byte[]   //把image字段强制转换即可
  2. 以byte[]构造MemoryStream
  3. 以MemoryStream在内存中构造图象

显示图片中2、3步的代码实例如下:

        //data 为数据库中转换过来的byte[]数组
        //mime为string类型的MIME类型

        //在得到byte[]和MIME类形后

        Response.Clear();//清空所有输出
        Response.ContentType = mime;//设置MIME为图象对应的MIME
        //因为不存在直接将byte[]转换成图象的方法
        //所以利用byte[]来构建内存流对象
        MemoryStream memoryStream = new MemoryStream(data);
        //利用流对象构建Bitmap对象
        Bitmap image = new System.Drawing.Bitmap(memoryStream);
        //将Bitmap保存到Response对象的输出流当中
        image.Save(Response.OutputStream, ImageFormat.Jpeg);
        image.Dispose();//释放Bitmap对象
        Response.End();


注:

可把用dyte[]转换成图片的代码单独放在一个aspx页面的后台代码块中,在需要显示图片的位置设置<img>元素的src属性指向该byte[]成图片的页面即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值