赞
踩
I want to upload a .png file into my database.
fileName = QFileDialog().getOpenFileName()
filePath = str(fileName[0]) # Path of the image data
self.myImage = filePath
connection = pymysql.connect(host = 'localhost',
user = 'root',
db = 'mydatabase',
cursorclass = pymysql.cursors.DictCursor)
cur = connection.cursor()
cur.execute("INSERT INTO mytable VALUES('" + self.myImage + "')")
connection.commit()
But something is wrong, because if I look in my local database the image is saved as binary file and I can't open or download it.
What can I do to upload an image into my database properly?
解决方案
You just need to read the image file and store the data as a blob in the database:
with open(filePath, 'rb') as stream:
blob = stream.read()
cur.execute("INSERT INTO mytable VALUES(%s)", [blob])
To convert the blob into a pixmap:
pixmap = QtGui.QPixmap()
pixmap.loadFromData(blob)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。