L'insertion et la récupération des images dans mysql via python
J'ai utilisé ce code pour insérer une image dans la base de données mysql et de récupérer l'image.
Ce code fonctionne parfaitement sans erreur , mais le problème est que, même après avoir inséré une image dans img table , quand j'exécute la commande select * from img ;
dans la ligne de commande de mysql il ne montre pas les dossiers.
Table créée dans la base de données;
create table img(images blob not null);
import mysql.connector
import sys
from PIL import Image
import base64
import cStringIO
import PIL.Image
db = mysql.connector.connect(user='root', password='abhi',
host='localhost',
database='cbir')
#image = Image.open('C:\Users\Abhi\Desktop\cbir-p\images.jpg')
with open("C:\Users\Abhi\Desktop\cbir-p\images.jpg", "rb") as image_file:
encoded_string = base64.b64encode(image_file.read())
#blob_value = open('C:\Users\Abhi\Desktop\cbir-p\images.jpg', 'rb').read()
sql = 'INSERT INTO img(images) VALUES(%s)'
args = (encoded_string, )
cursor=db.cursor()
cursor.execute(sql,args)
sql1='select * from img'
cursor.execute(sql1)
data=cursor.fetchall()
#print type(data[0][0])
data1=base64.b64decode(data[0][0])
file_like=cStringIO.StringIO(data1)
img=PIL.Image.open(file_like)
img.show()
db.close()
Dans le manuel j'ai trouvé qu'il y a un type de données pour les chaînes binaires (BLOB) et une pour les chaînes de caractères (TEXTE). Pourquoi pensez-vous convertir votre chaîne binaire(image) à une chaîne de caractères(base64) et l'enregistrer comme une chaîne binaire(BLOB)?
double possible de Comment insérer / extraire un fichier stocké sous forme d'un BLOB dans une base MySQL à l'aide de python
Grâce miracle173
double possible de Comment insérer / extraire un fichier stocké sous forme d'un BLOB dans une base MySQL à l'aide de python
Grâce miracle173
OriginalL'auteur user3320033 | 2014-03-03
Vous devez vous connecter pour publier un commentaire.
Ce code fonctionne très bien
OriginalL'auteur user3320033
SALUT DaFois ! comment êtes-vous je pense que nous pouvons stocker le fichier ou de l'image uniquement pour les données chiffrées type . nous devons d'abord lire le fichier pour binarycode. donc, utiliser l'importation base64 avec open('.jpg', 'rb') , et ensuite crypté en base64.b64encode(photo), puis le stocker à mysql. Si vous souhaitez afficher une image à partir de mysql à l'aide de code ci-dessous par "sélectionnez * à partir de l'exemple", en venant de données est de chiffrer nous avons donc décrypter base64.b64decode(data[0][0]). puis converto bytecode. parce qu'il viennent de chaîne. ensuite nous ouvrir une image comme fichier de PIL.Image.ouvert(file_like), PIL moyenne pour oreiller ,ce module utilisation de l'image du magasin dans mysql. de montrer ensuite. merci
merci de ne pas l'expliquer dans les commentaires mais la mise à jour de votre réponse en édition...
OriginalL'auteur Arun Kumar