把图片转成2进制存到database中

本文介绍了一种在ASP.NET应用程序中实现图片上传的方法,并详细展示了如何将图片转换为二进制格式存储到数据库的过程。具体步骤包括使用System.Drawing命名空间读取图片文件,将其转换为JPEG格式并保存到内存流中,最后通过存储过程插入到SQL Server数据库。
摘要由CSDN通过智能技术生成

 protected void btnSave_Click(object sender, EventArgs e)
    {
        // 上传的图片文件到Image
        System.Drawing.Image img = System.Drawing.Image.FromFile(fileImg.PostedFile.FileName);

        // 以Jpeg格式存到内存中
        System.IO.MemoryStream ms =
new System.IO.MemoryStream();
        img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);

        using (SqlConnection con =
new SqlConnection("Data Source=.//SQLEXPRESS;AttachDbFilename=|DataDirectory|//Database.MDF;Integrated Security=True;User Instance=True"))
        {
            SqlCommand cmd =
new SqlCommand("spInsertImage", con);
            cmd.CommandType = CommandType.StoredProcedure;

            cmd.Parameters.Add("@ImageBinary", System.Data.SqlDbType.Image);
            // 图片的二进制数据
            cmd.Parameters["@ImageBinary"].Value = ms.ToArray();

            con.Open();
            try
            {
                // 调存储过程
                cmd.ExecuteNonQuery();
                Response.Write("ok");
            }
            catch
            {
                Response.Write("error");
            }
        }

        img.Dispose();
        ms.Dispose();
        ms.Flush();
    }
在本地服务器中将图片存储到数据库中,通常有以下几种方法: 1. **将图片以二进制形式存储**: - **步骤**: 1. 创建一个数据库表,包含一个用于存储图片的字段,通常是`BLOB`(二进制大对象)类型。 2. 使用编程语言(如Python、Java、PHP等)将图片读取为二进制数据。 3. 将二进制数据插入到数据库表中。 - **示例**(以MySQL和Python为例): ```sql CREATE TABLE images ( id INT AUTO_INCREMENT PRIMARY KEY, image_data LONGBLOB ); ``` ```python import mysql.connector # 连接到数据库 cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='database_name') cursor = cnx.cursor() # 读取图片文件 with open('path_to_image.jpg', 'rb') as file: binary_data = file.read() # 插入图片数据 insert_query = "INSERT INTO images (image_data) VALUES (%s)" cursor.execute(insert_query, (binary_data,)) cnx.commit() cursor.close() cnx.close() ``` 2. **将图片路径存储在数据库中**: - **步骤**: 1. 将图片文件存储在服务器的文件系统中。 2. 在数据库表中创建一个字段,用于存储图片的路径。 3. 在需要显示图片时,通过路径读取并展示图片。 - **示例**(以MySQL和Python为例): ```sql CREATE TABLE images ( id INT AUTO_INCREMENT PRIMARY KEY, image_path VARCHAR(255) ); ``` ```python import mysql.connector import os # 连接到数据库 cnx = mysql.connector.connect(user='username', password='password', host='127.0.0.1', database='database_name') cursor = cnx.cursor() # 图片路径 image_path = 'images/image.jpg' # 将图片文件移动到指定目录 os.rename('path_to_image.jpg', image_path) # 插入图片路径 insert_query = "INSERT INTO images (image_path) VALUES (%s)" cursor.execute(insert_query, (image_path,)) cnx.commit() cursor.close() cnx.close() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值