You are not logged in linkOpaque.gif Log in linkOpaque.gif Join
You are here: Home » Members » airod's Home » insertion blob dans un base MySQL

Une communauté active ?
Trouvez vous facilement les réponses à vos questions sur ZOPE, PLONE ou CPS (ou autres interfaces)
oui trés facilement
ca va
moyennement il faut pas mal chercher
non c'est assez dur
quasiment jamais

[ Results | Polls ]
Votes: 699
About
Created by
airod
Document Post dans le forum
Last modified
19/01/09
State
published

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` )
VALUES (
'', <dtml-sqlvar image type=string>);

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

Recherche
Log in
Syndication
« September 2010 »
Su Mo Tu We Th Fr Sa
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30