일반적으로 이미지를 파일 시스템에 저장하고 파일 경로만 데이터베이스에 저장하지만 때로는 이미지 바이너리를 데이터베이스에 저장해야 하는 특별한 요구 사항이 있습니다.
오늘은 python+mysql 방식을 사용합니다
MYSQL은 데이터베이스에 이미지 저장을 지원하므로 더 큰 특수 필드 BLOB(Binary Large Object)가 있습니다. 바이너리 객체
에는 바이너리를 저장하는 더 큰 LONGBLOB도 있습니다.
참고: 필드 길이를 너무 작게 설정하면 그림이 나타나므로 필드를 더 크게 설정하십시오. 상황의 일부만 표시됩니다. 둘째: 데이터의 양이 많은 경우에는 이 방법을 사용하지 마십시오. MySQL의 빅 데이터 쿼리 속도는 매우 느리기 때문입니다.
아래 코드:
#!/usr/bin/python #-*- coding: UTF-8 -*- import MySQLdb as mysql import sys try: #读取图片文件 fp = open("./test.jpg") img = fp.read() fp.close() except IOError,e: print "Error %d %s" % (e.args[0],e.args[1]) sys.exit(1) try: #mysql连接 conn = mysql.connect(host='localhost',user='root',passwd='123456',db='test') cursor = conn.cursor() #注意使用Binary()函数来指定存储的是二进制 cursor.execute("INSERT INTO images SET data='%s'" % mysql.Binary(img)) #如果数据库没有设置自动提交,这里要提交一下 conn.commit() cursor.close() #关闭数据库连接 conn.close() except mysql.Error,e: print "Error %d %s" % (e.args[0],e.args[1]) sys.exit(1)