Невозможно записать изображение после кодирования и декодирования с Base64 и добавления в базу данных MySQL - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь кодировать изображение с помощью 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 () (без этого я получаю ошибку типа)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...