批量存储图片到mysql的软件

2023年 8月 4日 49.3k 0

如今,大量的图片和照片是我们日常生活和工作中必不可少的一部分。对于一些有需要的用户,他们需要有一种方法来方便地存储、管理和浏览这些图片。在这种情况下,一款能够批量存储图片到MySQL数据库的软件就非常有用了。

批量存储图片到mysql的软件

这样的软件对于摄影师、网站设计师、艺术家和数字营销人员来说非常有帮助。他们经常需要处理大量的图片,并保证图片的统一性和可访问性。使用这样的软件可以轻松地存储和管理这些图片。

import os
import MySQLdb
from PIL import Image
# 定义MySQL数据库信息
mysql_host = 'localhost'
mysql_port = '3306'
mysql_user = 'root'
mysql_password = '123456'
mysql_db = 'test'
# 定义图片文件夹路径和数据库表名称
path = 'C:\Users\Administrator\Desktop\test\'
table_name = 'images'
# 定义连接和游标对象
db = MySQLdb.connect(host=mysql_host, port=int(mysql_port),
user=mysql_user, passwd=mysql_password, db=mysql_db, charset='utf8')
cursor = db.cursor()
# 定义插入图片到数据库的函数
def insert_image_to_mysql(file_path):
try:
# 打开图片文件
fp = open(file_path, 'rb')
img = Image.open(fp)
# 获取图片文件名并获取类型
filename = os.path.basename(file_path)
file_type = os.path.splitext(filename)[1]
# 转换图片为二进制
blob_value = MySQLdb.Binary(fp.read())
# 插入二进制数据到数据库
query = "INSERT INTO {} (filename, file_type, data) VALUES ('{}', '{}', %s)".format(table_name, filename, file_type)
cursor.execute(query, (blob_value,))
db.commit()
print("Insert {} success".format(filename))
# 关闭文件
fp.close()
except Exception as e:
print("Error:", e)
db.rollback()
# 批量插入图片到MySQL数据库
for filename in os.listdir(path):
if filename.endswith('.jpg') or filename.endswith('.jpeg') or filename.endswith('.png'):
insert_image_to_mysql(path + filename)
# 关闭游标和数据库连接
cursor.close()
db.close()

在这段代码中,我们首先定义了需要连接的MySQL数据库的信息,包括了主机名、端口、用户名、密码、数据库名等。然后我们定义了保存图片的文件夹路径和数据库表的名称。

我们使用了Python编程语言,并导入了三个必要的库:os、MySQLdb和PIL。在Python中,我们可以使用os库来访问底层操作系统中的文件和目录,而MySQLdb库则是Python连接MySQL数据库的必要库,而且需要在系统中安装MySQL数据库的驱动程序才能正常使用这个库。在这里,我们还使用了PIL库来读取和处理图片文件。

在定义了连接和游标对象之后,我们进入了定义插入图片数据到MySQL数据库的函数中。在这个函数中,我们首先打开图片文件,获取图片文件名和类型,然后将图片转换为二进制数据,最后使用SQL语句向表中插入数据。在这里使用了MySQLdb库的Binary函数将二进制数据传递给SQL语句。

最后,我们遍历路径下的所有图片,并调用之前定义的函数来将图片文件保存到MySQL数据库中。在批量存储完毕后,我们关闭游标和数据库连接。

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论