La conversion de BLOB, stockées sur une base de données d'une image sur un site web HTML
C'est ma première question.
Je vais avoir les utilisateurs de télécharger leurs propres images à une base de données.
Cette image est stockée sous forme d'un BLOB.
J'ai été en mesure de le faire avec succès.
Je suis de l'utilisation de MySQL pour la base de données.
La partie que je vais avoir des ennuis avec, est de l'affichage de cet objet BLOB comme une image sur le site au moment de son appel.
Droit maintenant, seules les données Binaires, beaucoup de symboles étranges sont affichées. Je pense que c'est un problème avec l'en-tête HTTP. Dès maintenant ses en :
print "Content-Type: text/html"
J'ai essayé:
print "Content-Type: image/jpeg"
Je suis à l'aide de Python pour se connecter avec la base de données et d'écrire le code HTML.
Edit: Code:
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()
Vous aurez besoin d'inclure plus de code dans le script que vous utilisez.
OriginalL'auteur user2332223 | 2013-04-29
Vous devez vous connecter pour publier un commentaire.
image est stockée dans la base de données au format binaire, de sorte une fois, il s'agit de serveur à l'aide de décoder la fonction pour reprendre l'image
cela vous permettra de transformer votre blob à l'image
OriginalL'auteur Alok Agarwal
Selon la façon dont c'est codé, vous pouvez peut-être aussi tout simplement utiliser un Data URI de l'image. Quelque chose comme ça pourrait fonctionner si elles sont encodées en base64 Png.
@Alok dit, vous devez d'abord le convertir de blob binaire en base64, puis utiliser les Données de l'URI.
Cool, si cela a fonctionné, alors s'il vous plaît upvote cette réponse alors que d'autres seront en mesure de l'utiliser si ils ont le même problème.
OriginalL'auteur reptilicus
Bien, vous pouvez soit retourner une réponse HTML, et utiliser une combinaison de la les réponses existantes, ou vous pouvez simplement retourner un
image/jpeg
réponse, et de vidage de la GOUTTE directement sur la sortie standard, avec quelque chose comme ça......mais ça dépend de ce que vous essayez d'atteindre.
OriginalL'auteur Aya