insertion blob dans un base MySQL
Pour participer à cette discussion, cliquez ici pour vous inscrire.
| Auteur | Discussion |
|---|---|
|
airod |
insertion blob dans un base MySQL bonjour, j'ai un petit soucis concernant insertion en base de données d'un objet (type image) dans un champs blob. J'ai essayé l'insertion directe de ce que je récupère via mon request.form, mais ca n'insère que le nom de l'objet transmis. (nom du fichier) J'ai lu qu'il fallait passer une chaine encodé en base64, mais le problème c'est que zope ne permet pas d'utiliser la fonction "open" dans un script python. l'idée serait de faire ca : monObjet=request.form['monIdObjet'] monOjetOpen=open(monObjet) maChaine=base64_encodestring(monObjetOpen) puis faire l'insert en base de maChaine. Quelqu'un pourrait il me dire comment procéder? Posté le 19/01/2009 @ 18:58
|
|
amine |
imaginons...
imaginons que ceci est le code d'une zsql-method, avec "image" comme parametre, avec comme nom (id) "insert_image": INSERT INTO `principale` ( `id` , `image` ) imaginons que ceci est le script python sur lequel pointe ton formulaire, le champs fichier de ton formulaire s'appelle "fichier", ceci serait le code: image_data = container.REQUEST.fichier.read() container.insert_image(image = image_data) return "image inserée avec succes"tu peux verifier avec le code du precedent post qu'elle est bien inserée dans mysql. il existe un tutoriel sur l'utilisation de zope avec mysql, enregistre toi d'abord sur afpy pour pouvoir le telecharger: http://www.afpy.org/Members/amine/mysql_zope.zip Posté le 20/01/2009 @ 17:56
|
|
amine |
n'oublie pas que...
n'oublie pas que container.REQUEST['fichier'].read() est un buffer, c'est à dire qu'il se videra des que tu le liras. pour eviter de te casser la tete, il faut d'abord recuperer le code binaire de l'image depuis le formulaire et le stocker dans une variable (image_data). Posté le 20/01/2009 @ 17:59
|
|
airod |
merci
merci beaucoup pour cette explication trés claire et compréhensible. Posté le 20/01/2009 @ 18:06
|

Log in
Forgot your password?