Я пытаюсь кодировать изображение с помощью base64 и добавить его в базу данных MySQL.Затем я пытаюсь извлечь этот код и декодировать его обратно, чтобы записать его в изображение локально.В настоящее время я храню закодированный base64 в поле LONGTEXT, которое имеет набор символов 'utf8mb4'.
Когда я пытаюсь извлечь код из базы данных и загрузить его в изображение, полученное изображение не может быть открыто.Что я делаю не так?
Вот код, который я использую для кодирования файла изображения.
def convertImageToJSON():
# pick an image file you have in the working directory
# or give full path
image = open('/Users/************/Desktop/dog.jpg', 'rb')
image_read = image.read()
image_64_encode = base64.encodestring(image_read)
return image_64_encode
Я храню то, что возвращается этой функцией, в моем поле LONGTEXT.
Затем я пытаюсь создать изображение, используя то, что находится в этом поле для конкретной записи
def makeImageFile(name):
mycursor = mydb.cursor()
mycursor.execute("SELECT code FROM images WHERE name=name")
myresult = mycursor.fetchone()
tester = ''.join(myresult)
real = tester.encode('utf-8')
test = base64.decodestring(real)
print(test)
image_result = open('deer_decode.jpg', 'wb')
image_result.write(real)
Я использую '' .join (myresult), чтобы вытащить его из кортежа, затем используюtester.encode ('utf-8'), чтобы вернуть его в utf-8, чтобы я мог использовать base64.decodestring () (без этого я получаю ошибку типа)