MySQL实现图片数据存储功能(mysql存储图片数据库)
随着图像已经被深度学习技术应用到各个领域, 将图片存储到数据库中成为一个极具有挑战性的课题。一般情况下,图片一般都用二进制形式进行存储,而且最常用MySQL 来实现这个功能。
MySQL 存储图片数据有两种方式,第一种是将图片存储在硬盘上,只将图片的路径保存在数据库中;第二种方式是直接将图片存储在MySQL中。
第一种方式存储图片,由于图片的存储路径是以字符串的形式保存在MySQL数据库,所以首先要创建一个字符串类型的字段,可以像下面代码一样使用MySQL 创建表:
CREATE TABLE image (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
file_name VARCHAR(255) NOT NULL,
description VARCHAR(255)
)ENGINE=INNODB DEFAULT CHARSET=utf8;
第二种方式存储图片,是将图片的数据存储在MySQL中,这种方式可以节省开发空间,可以使用MySQL的Blob类型来存储图片。 Blob类型可以存储大约64K的数据,所以对于大小不超过64K的图片,使用Blob类型来存储是会是一种不错的选择,可以像下面代码一样使用MySQL 创建表:
CREATE TABLE image (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
file_name VARCHAR(255) NOT NULL,
description VARCHAR(255),
image BLOB
)ENGINE=INNODB DEFAULT CHARSET=utf8;
无论采用哪种方式存储图片,为了避免针对图片上传可能出现的安全隐患,可以采用改变图片文件名称,将其进行加密处理,这样就可以避免图片被未经过授权访问。
在当今Web 开发中,MySQL 已经成为非常常用的数据库,而且可以很容易实现图片的存储功能,但是,为了保证安全,应对上传的图片进行加密处理,以保护图片不被未经过授权的用户访问。