如何将图像对象保存在数据库中?

时间:2019-03-05 07:00:47

标签: python database web save connection

我有一个python代码,我想将一个图像保存到数据库中,并且该图像是一个对象(图像)

这是我要保存在桌子上的桌子

  

创建表projectemail varchar(100)COLLUT utf8_bin   默认为空,project_name varchar(200)COLLATE utf8_bin不为空,   panelimg longblob NOT NULL,status int(1)NOT NULL,)   ENGINE = InnoDB DEFAULT CHARSET = utf8 COLLATE = utf8_bin;

这是我写的,但是不能正常工作

conv = convertToBinaryData(origimg)
cursor.execute("UPDATE project SET panelimg=origimg where status = 0 and email = 'snoo@gmail.com'")

其中图像中的原始图像作为对象(图像)

这是转换为二进制的功能:

def convertToBinaryData(filename):
    #Convert digital data to binary format
    with open(filename, 'rb') as file:
        binaryData = file.read()
    return binaryData

我收到此错误,所以我需要帮助

  

convertToBinaryData中的文件“ K-mean4-draw6-database.py”,第17行       使用open(filename,'rb')作为文件:TypeError:预期的str,字节或os.PathLike对象,而不是Image

请提出任何建议,谢谢

1 个答案:

答案 0 :(得分:1)

只要需要将图像存储在数据库中,就可以将图像转换为base64字符串,并且在从数据库中获取数据时可以使用相反的步骤。

下面是如何使用base64的代码:

import base64

with open("filepath/filename", "rb") as imageFile:
    image_string = base64.b64encode(imageFile.read())