iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql数据库怎样储存读取图片
  • 693
分享到

mysql数据库怎样储存读取图片

2024-04-02 19:04:59 693人浏览 泡泡鱼
摘要

这篇文章主要介绍了Mysql数据库怎样储存读取图片,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql储存读取图片的方法:首先将图片转换成缓

这篇文章主要介绍了Mysql数据库怎样储存读取图片,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

mysql储存读取图片的方法:首先将图片转换成缓冲流;然后获得图片的字节数组并执行相关操作;最后通过“public void MapSearchQuery(out byte[] imageByteResulet){...}”读取图片即可。

   首先,介绍一下mysql相关的数据类型:MySQL中有四种BLOB类型,TinyBlob(最大255Byte), Blob(最大65K), MediunBlob(16M), LongBlob(最大4G)。这里注意一下如果你数据库出现相关的Data too long...字样可能是你选择的种类的大小不够。

   接下来简单说一下我为什么没有用存储图片路径的方式,而采取了直接在MySQL中存储图片的方式。原因有两点:

   1、本身不需要大量图片,一个数据库只需要一张图片

   2、软件结构是要通过WEBService由一个主客户端去访问下面附属的几个客户端,如果附属客户端不存储图片直接供主客户端访问,那么主客户端势必就需要一个加载图片的功能(类似于FTP的功能)。

   下面还是直接上代码吧:

public bool MapSearchWrite(string strImagePath)
         {
             //将图片转换成缓冲流
             FileStream fs = new FileStream(strImagePath, FileMode.Open, FileAccess.Read);
             
             //获得图片的字节数组
             byte[] byImage = new byte[fs.Length];
             fs.Read(byImage, 0, byImage.Length);
             fs.Close();
             //数据库连接
             MySqlConnection conn = new MySqlConnection();
             conn.ConnectionString = "Server=localhost;Uid=root;PassWord=123456;Database=firefighting;charset=gb2312";
             try
             {
                 conn.Open();
             }
             catch
             {
                 conn.Close();
                 conn.Dispose();
                 throw new ArgumentException("地图检索数据库连接失败");
             }
             //判断数据库内部有无记录
             string strQueryCmd = "select PicNum from images";
             MySqlCommand cmdQuery = new MySqlCommand(strQueryCmd, conn);
             MySqlDataReader dataReader = cmdQuery.ExecuteReader();
             //执行操作
             MySqlCommand cmd = new MySqlCommand();
             if (dataReader.Read())
             {
                 cmd.CommandText = "update images set Image=@byImage";
             }
             else
             {
                 cmd.CommandText = "insert into images(Image) values(@byImage)";
             }
           
             cmd.CommandType = CommandType.Text;
             cmd.Parameters.Add("@byImage", MySqlDbType.MediumBlob);
             cmd.Parameters[0].Value = byImage;
             cmd.Connection = conn;
          
             int affectedRows = 0;
             try
             {
                 affectedRows = cmd.ExecuteNonQuery();
             }
             catch
             {
                 affectedRows = -1;
             }
             //关闭连接等
             cmd.Dispose();
             conn.Close();
             conn.Dispose();
             if (affectedRows <= 0)
             {
                 return false;
             }
             else
             {
                 return true;
             }
         }

   这是把图片插入到数据库的操作代码,路径的话就是你所需要存储的图片所在的路径(包括图片的名字和后缀名哦),另外我这里采用的是ADO.net的连接方式,语言是C#的,其他代码也不用我解释了......

   下面是读取MySQL中的图片的代码

 public void MapSearchQuery(out byte[] imageByteResulet)
         {
             imageByteResulet = null;
             MySqlConnection conn = new MySqlConnection();
             conn.ConnectionString = "Server=localhost;Uid=root;Password=123456;Database=firefighting;charset=gb2312";
             try
             {
                 conn.Open();
             }
             catch
             {
                 conn.Close();
                 conn.Dispose();
                 throw new ArgumentException("地图检索数据库连接失败");
             }
             string strQueryCmd = "select Image from images limit 1";
             MySqlCommand cmd = new MySqlCommand(strQueryCmd, conn);
             MySqlDataReader dataReader = null;
             try
             {
                 dataReader = cmd.ExecuteReader();
             }
             catch
             {
                 dataReader.Dispose();
                 cmd.Dispose();
                 conn.Close();
                 conn.Dispose();
                 throw new ArgumentException("地图检索查询地图失败");
             }
             if (dataReader.Read())
             {
                 imageByteResulet = new byte[dataReader.GetBytes(0, 0, null, 0, int.MaxValue)];
                 dataReader.GetBytes(0, 0, imageByteResulet, 0, imageByteResulet.Length);
                 //将图片字节数组加载入到缓冲流
                 // MemoryStream imageStream = new MemoryStream(imageByte);
                 //从缓冲流生成图片
                 //imageResulet = Image.FromStream(imageStream, true);
             }
             dataReader.Dispose();
             cmd.Dispose();
             conn.Close();
             conn.Dispose();
         }

   当然这里我是照顾到Image对象不能通过WebService传输而把BLOB数据只转换成byte[]在传输,如果不需要这个功能的换可以直接把相关代码踢出来再将byte[]转成图片对象即可,一下提供两种方法

第一种:imageByte是调用上面函数得到的byte[]的数据

//将图片字节数组加载入到缓冲流  
MemoryStream imageStream = new MemoryStream(imageByte);
                //从缓冲流生成图片                
                imageResulet = Image.FromStream(imageStream, true);
                //pictureBox是一个显示图片或者视频的C#控件
                pictureBox.Image = imageResulet;

这样就把图片读取出来并显示出来了

第二种:BitMap是System.Drawingm命名空间中的

Bitmap bm = new Bitmap(new MemoryStream(
imageByte
));
            
    
 pictureBox1.Image = bm;

那么,到此我就说完了,当然不是迫不得已不要把图片存到数据库中,可以做个url映射,返回文件流。

感谢你能够认真阅读完这篇文章,希望小编分享mysql数据库怎样储存读取图片内容对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,遇到问题就找编程网,详细的解决方法等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: mysql数据库怎样储存读取图片

本文链接: https://www.lsjlt.com/news/53182.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql数据库怎样储存读取图片
    这篇文章主要介绍了mysql数据库怎样储存读取图片,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。mysql储存读取图片的方法:首先将图片转换成缓...
    99+
    2024-04-02
  • mysql图片怎么存储和读取
    在MySQL中,可以将图片存储为BLOB(Binary Large Object)类型的数据。BLOB类型可以存储大容量的二进制数据...
    99+
    2024-04-18
    mysql
  • mysql数据库能不能存储图片
    这篇文章主要介绍了mysql数据库能不能存储图片,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。MySQL是一个关系型数据库管理系统,由瑞典MyS...
    99+
    2024-04-02
  • 实现向MYSQL数据库中存储或提取图片文件
    一些情况下,需要向数据库中存储一些2进制文件,比如图片文件等,这时候,向数据库存储数据不同于普通的字符串存储,我们需要对这个2进制文件使用JAVA处理2进制流的API进行处理,然后再进行存储。我们需要进行以...
    99+
    2024-04-02
  • 保存图片到MySQL&从MySQL读取图片
    🍉接上次 爬取坤坤表情包 ,这次我们直接将表情包存到MySQL数据库而不是本地。🍉 🥭1. 创建数据库 首先创建一个数据库,数据库名为ikun,表名为img,3个字段分别为id(图片...
    99+
    2023-09-14
    mysql 数据库 java
  • php怎么读取数据库中的图片
    在PHP中,可以使用MySQLi或PDO等库来连接数据库并读取图片。 以下是使用MySQLi库的示例代码: 在上面的示例中,首先使...
    99+
    2023-10-25
    php 数据库
  • Android 数据库中怎么存取图片
    Android 数据库中怎么存取图片,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、数据库创建和存取方法:在数据库创建时,图片字段的数据...
    99+
    2024-04-02
  • Unity数据怎么存储与读取
    Unity中数据存储和读取可以通过多种方式实现,以下是一些常用的方法: PlayerPrefs:Unity提供了PlayerPre...
    99+
    2024-05-09
    Unity
  • python怎么存储和读取数据
    在Python中,可以使用各种方法来存储和读取数据,具体方式取决于数据的类型和使用环境。以下是一些常见的方法: 使用变量:可以将数...
    99+
    2023-10-26
    python
  • 读取或存储DataFrames的数据到mysql中
    如何把DataFrames数据存入数据库中,以MySQL为例进行说明 保存DataFrames到数据库 1. 创建数据库连接 import pymysqlfrom sqlalchemy import ...
    99+
    2023-09-14
    mysql 数据库 python
  • 将图片储存在MySQL数据库中的几种方法
    通常对用户上传的图片需要保存到数据库中。 解决方法一般有两种: 1、将图片保存的路径存储到数据库; 2、将图片以二进制数据流的形式直接写入数据库字段中。 以下为具体方法: 一、保存图片的上传路径到数据库: ...
    99+
    2024-04-02
  • MySQL数据库存储和分支是怎样的
    今天就跟大家聊聊有关MySQL数据库存储和分支是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。  在MySQL经历了2008年Sun的收购和2...
    99+
    2024-04-02
  • java怎么将图片存入mysql数据库
    要将图片存入MySQL数据库,可以使用以下步骤: 1、首先,将图片转换为字节数组。可以使用Java的FileInputStream和...
    99+
    2024-04-19
    java mysql
  • C语言读取和存储bmp格式图片
    开发过程中有时候需要解析bmp数据,下面先简单介绍bmp数据组成,后面附上C语言读取和存储bmp格式图片代码。 典型的位图文件格式通常包含下面几个数据块: 1、BMP文件头:保存位图...
    99+
    2024-04-02
  • spark怎么读取mysql数据库数据
    在Spark中读取MySQL数据库数据,可以使用Spark的DataFrame API和JDBC连接器来实现。以下是一种常见的方法:...
    99+
    2024-04-09
    spark mysql
  • mysql如何读取数据库数据
    mysql 读取数据库数据有两种常用方法:select 语句,用于从表中提取数据,语法为:select [列名] from [表名] [条件] [分组] [条件] [排序] [...
    99+
    2024-04-14
    mysql python
  • Qt怎么使用SQLite数据库存储管理图片文件
    今天小编给大家分享一下Qt怎么使用SQLite数据库存储管理图片文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1、效果演...
    99+
    2023-07-06
  • c语言socket怎么读取数据并存储
    要读取数据并存储数据,首先需要创建一个socket来建立连接,并设置socket的选项。然后使用read()函数来读取数据,最后将读...
    99+
    2024-04-09
    c语言
  • ASP.NET和SQL Server数据库图片存储如何实现
    这篇文章主要为大家展示了“ASP.NET和SQL Server数据库图片存储如何实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ASP.NET和SQL Server数据库图片存储如何实现”这篇...
    99+
    2023-06-18
  • springmvc怎么从MySQL中读取图片
    Spring MVC 可以通过使用MySQL数据库来读取图片,并将其显示在前端页面上。以下是一个简单的示例代码: 首先,创建一个实...
    99+
    2024-04-18
    springmvc MySQL
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作