Stocker des images dans une base MySQL, HELP !!!!!!!
Publié : 03.01.2005 - 16h43 par P2M
Tout d'abord je vous souhaite une très bonne année 2005 à tous.....
Bon voilà j'ai besoin d'aide pour des accès à MySQL via Revolution.
En fait j'arrive à mes fins pour la majorité de mes besoins et j'arrive à stocker et récupérer mes infos dans ma base MySQL sans problème.
Mais là je but car je voudrais stocker des images dans ma base. Je pense que je ne sais pas trop qu'elle est la bonne méthode.
Voilà ce que j'ai fait et qui marche de façon aléatoire (d'où mon problème), en fait que pour des images faisant moins de 48 K.
Je sais qu'il y a une limite à 63K quand on fait des requêtes avec revolution, mais là une image qui fait 49k ne passe pas.
ENREGISTREMENT d'une image
1/ j'importe une image jpeg depuis un fichier .jpg dans un objet image d'une card.
=> put URL ("binfile:"&it) into image "fullsize"
2/ Puis je prend le contenu de cet objet image et je l'encode.
=>put image "fullsize" into varImage
=>put Base64encode(varImage) into varImage
3/ J'enregistre les données dans la base MySQL
=>revExecuteSQL idDB,"INSERT INTO medias (med_data) VALUES ('"&varImage&"')"
RECUPERATION d'une image
1/ Je sélectionne et récupère les infos de l'enregistrement dans la table medias
=>get revDataFromQuery(,,idDB,"SELECT med_data FROM medias WHERE id_med='1'")
2/ je décode les info
put Base64decode(it) into medData
3/ j'affiche l'image
=> put medData into image "vignette"
Bon après avoir lu la doc, je devrais avoir plutôt ceci :
- un champs BLOB dans ma base MySQL à la place d'un champs TEXT
- ne transférer et ne stocker que des données BINARY
- utiliser les fonction revDatabaseQueryBLOB pour ne pas être limité en taille de donnée (64k)
Et c'est là que je n'arrive à rien du tout
je n'arrive pas à saisir cette fonction revDatabaseQueryBLOB. Elle permet uniquement de faire un sélection dans la bse et de récupérer un pointeur n'est ce pas. Mais après les données de l'enregistrement je les récupère comment ? quelle fonction me permet de récupérer mon champs med_data dans ma table ?
Bref, j'ai besoin de pouvoir enregistrer des images jpeg dans ma base MySQL et si quelqu'un pouvait me donner la bonne marche à suivre ce serait génial, c'est très important, merci d'avance....
Philippe
Bon voilà j'ai besoin d'aide pour des accès à MySQL via Revolution.
En fait j'arrive à mes fins pour la majorité de mes besoins et j'arrive à stocker et récupérer mes infos dans ma base MySQL sans problème.
Mais là je but car je voudrais stocker des images dans ma base. Je pense que je ne sais pas trop qu'elle est la bonne méthode.
Voilà ce que j'ai fait et qui marche de façon aléatoire (d'où mon problème), en fait que pour des images faisant moins de 48 K.
Je sais qu'il y a une limite à 63K quand on fait des requêtes avec revolution, mais là une image qui fait 49k ne passe pas.
ENREGISTREMENT d'une image
1/ j'importe une image jpeg depuis un fichier .jpg dans un objet image d'une card.
=> put URL ("binfile:"&it) into image "fullsize"
2/ Puis je prend le contenu de cet objet image et je l'encode.
=>put image "fullsize" into varImage
=>put Base64encode(varImage) into varImage
3/ J'enregistre les données dans la base MySQL
=>revExecuteSQL idDB,"INSERT INTO medias (med_data) VALUES ('"&varImage&"')"
RECUPERATION d'une image
1/ Je sélectionne et récupère les infos de l'enregistrement dans la table medias
=>get revDataFromQuery(,,idDB,"SELECT med_data FROM medias WHERE id_med='1'")
2/ je décode les info
put Base64decode(it) into medData
3/ j'affiche l'image
=> put medData into image "vignette"
Bon après avoir lu la doc, je devrais avoir plutôt ceci :
- un champs BLOB dans ma base MySQL à la place d'un champs TEXT
- ne transférer et ne stocker que des données BINARY
- utiliser les fonction revDatabaseQueryBLOB pour ne pas être limité en taille de donnée (64k)
Et c'est là que je n'arrive à rien du tout

je n'arrive pas à saisir cette fonction revDatabaseQueryBLOB. Elle permet uniquement de faire un sélection dans la bse et de récupérer un pointeur n'est ce pas. Mais après les données de l'enregistrement je les récupère comment ? quelle fonction me permet de récupérer mon champs med_data dans ma table ?
Bref, j'ai besoin de pouvoir enregistrer des images jpeg dans ma base MySQL et si quelqu'un pouvait me donner la bonne marche à suivre ce serait génial, c'est très important, merci d'avance....
Philippe