use*_*223 5 html python database blob image
这是我的第一个问题.
我让用户将自己的图像上传到数据库.该图像存储为BLOB.
我成功地做到了这一点.我正在使用MySQL作为数据库.
我遇到问题的部分是在调用时将BLOB显示为网站上的图像.
现在只显示二进制数据,显示许多奇怪的符号.我认为这是HTTP标题的问题.现在它在:
print "Content-Type: text/html"
Run Code Online (Sandbox Code Playgroud)
我试过了:
print "Content-Type: image/jpeg"
Run Code Online (Sandbox Code Playgroud)
我使用Python连接数据库并编写HTML.
编辑:代码:
def showFile():
# do SQL to retrieve blob where filename
conn, cursor = getConnectionAndCursor()
sql = """
select data
from upload
where id=1
"""
cursor.execute(sql)
data = cursor.fetchone()
blob = data[0]
print "<hr>"
print "This is what I'm trying"
print """<img src="data:image/jpeg;base64,%s/>""" % data
######################################################################
if __name__ == "__main__":
form = cgi.FieldStorage()
if "show_file" in form:
print "Content-Type: text/html"
print
printHeaders("Image upload example")
showFile()
printFooter()
Run Code Online (Sandbox Code Playgroud)
根据其编码方式,您还可以使用数据URI作为图像.如果它们被编码为base64 PNG,这样的东西可能会起作用.
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIA..." />
Run Code Online (Sandbox Code Playgroud)
正如@Alok所说,您可能需要先将其从二进制blob转换为base64,然后使用数据URI.
图像以二进制格式存储在数据库中,因此一旦使用解码功能到达服务器将其恢复为图像
image.decode('base64')
Run Code Online (Sandbox Code Playgroud)
这会将您的 blob 转换为图像
| 归档时间: |
|
| 查看次数: |
20248 次 |
| 最近记录: |