2016-10-29 3 views
0

.png 파일을 내 데이터베이스에 업로드하려고합니다.Python PyQt5 : 이미지 데이터를 phpmyadmin 데이터베이스에 저장

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() 

내 로컬 데이터베이스를 보면 이미지가 바이너리 파일로 저장되어 열거 나 다운로드 할 수 없기 때문에 뭔가 잘못되었습니다. 데이터베이스에 이미지를 올바르게 업로드하려면 어떻게해야합니까?

+1

이미지 파일에 불과하다 :

with open(filePath, 'rb') as stream: blob = stream.read() cur.execute("INSERT INTO mytable VALUES(%s)", [blob]) 

는 픽스맵에 방울을 변환하려면 바이트 - 다른 파일과 같습니다. 왜 열거 나 다운로드 할 수 없습니까? 너 뭐 해봤 니? * 구체적으로 무엇이 잘못 되었습니까? 질문의 코드는 파일을 업로드하지 않습니다. 단지 파일 경로를 데이터베이스에 삽입합니다. – ekhumoro

+0

예, 이것이 작동하지 않는 이유입니다. "잘못된 경로 파일"을 다운로드하려면 이미지 파일이 아닌 작은 바이너리 파일이 나옵니다. 당신은 그것을 열 수 없으며 그것은 쓸모가 없습니다. 경로가 아닌 파일을 업로드하고 싶습니다. 경로가 파일을 참조한다고 생각했지만 그렇지 않습니다. 이미지 파일을 업로드하려면 어떻게해야합니까? –

답변

1

당신은 이미지 파일을 읽고 데이터베이스에 BLOB으로 데이터를 저장해야합니다

pixmap = QtGui.QPixmap() 
pixmap.loadFromData(blob) 
+0

이런, 고맙습니다. –

관련 문제