Voilà des heures et des heures que je me casse la tête sur mon problème. J'aimerais vous prévenir que je suis assez débutant, mais je pense que ça va se voir.
J'ai une BDD dans laquelle j'ai stocké des images en longblob (des formats gif qui font entre 15 et 20 ko)
Mon but : les récupérer avec la colonne indexée, les encoder en base64 puis les formater en json pour un export sous unity (c#)
Je fais déjà ça avec mes données et ça marche très bien. C'est la première fois que j'utilise des images... et ça se passe pas pareil dirait-on
Voici un code typique avec des données et qui marche très bien :
Tu veux dire que dans ta BDD tu as les GIF ? Donc, que ces GIF sont stockés dans leur répertoire sur ton support de stockage (SSD ou HDD) ET que ces GIF sont stockés dans ta BDD ? Soit doublon de stockage si c'est le cas.
Je ne sais pas quelle utilisation tu veux faire des GIF, mais, tu devrais les stocker dans ton support de stockage dans un répertoire racine de ton projet que tu nomme comme tu veux. Et dans ta BDD, tu ne stockes pas les GIF mais le chemin depuis le répertoire racine.
Quand tu feras ta requête, tu pourras stocker le chemin du GIF de type chaîne de caractères, et le manipuler comme on manipule un fichier.
Je me trompe peut-être mais comme JSON est un langage de format de données, il ne sert basiquement qu'au stockage donc, j'ai du mal à trouver de l'intérêt à encoder les images, et de plus, ça ferait doublon avec ta BDD qui stocke des données.
Les gif ne sont pas stockés sur un support, uniquement sur ma base de données. J'ai bien pensé à stocker sur mon espace en ligne et ne conserver que les chemins, mais j'ai besoin de récupérer toutes les images d'un coup sur mon appli et ça va faire énormément de requête internet (j'aurais environ 300 images à récupérer au lancement de l'appli). Je ne peux pas les stocker non plus dans l'appli car j'en ai des nouvelles toutes les semaines et ça m'obligerai à faire des maj de mon appli en permanence.
Le json me permet de traiter facilement les données depuis le C#. Avec un script d'interprétation je peux transformer mon tableau de base de données "Joueurs" qui est stocké dans une variable de type text, en objet. Par exemple dans mon tableau joueurs j'ai une colonne dribble, donc depuis mon script c# je fais joueur[n].dribble et j'accède à la donnée.
Encoder les longblob en base64 c'est la solution que j'ai trouvé pour récupérer et stocker facilement les images dans une variable, sachant que l'appli peut ensuite les décoder et les utiliser à loisir. Après je suis peut-être en train de faire une connerie...
C'est lorsqu'on arrête d'apprendre que l'on commence à vieillir
En base j'insère directement l'image dans la BDD via phpMyAdmin, j'espère que je réponds à la question
Si je peux mettre en brut dans le json ça me va aussi mais je ne récupère que "null" quand j'encode pas via le php...
Je ne connais pas du tout l'html. Ce serait pour essayer voir si je récupère bien l'image ?
Le problème est que je n'arrive pas du tout à récupérer le code de l'image ET à formater le tout en json derrière. Je n'ai pas le loisir de me prendre la tête avec unity pour le moment...
En fait voilà ce que j'aimerais récupérer :
[{"Miniature":"Code de l'image"},{"Miniature":"Code de l'image"},{"Miniature":"Code de l'image"},{"Miniature":"Code de l'image"},etc,]
doit te retourner ce que tu veux. Quand tu parles d'indexation des colonnes tu veux dire quoi ? si c'est l'id de ton enregistrement en base, il faut rajouter la colonne dans ton select (alternativement, tu peux utiliser ma variable $i)
Edit: du coup, ça semple plus être un problème PHP que BDD, non ? Et sinon, pourquoi ne pas récupérer tes images via c# si tu veux les importer (et pas exporter ^^) ?
Oh nice, merci pour le site de conversion. Je n'avais même pas pensé à ça ^^' Bon du coup le code de l'image est mauvais, c'est bien ce que je craignais. Il ne doit pas m'encoder que l'image...
L'indexation c'est le nom de ma colonne devant chaque code (Miniature dans mon cas). Comme sur l'exemple que j'ai envoyé.
J'ai effectivement vu des personnes qui faisaient des requêtes SQL directement depuis Unity. Il me semble que c'est pour une question de sécurité que je passe par du php. J'avoue que je ne sais plus très bien j'ai pris l'habitude de faire comme ça, je ne pose plus la question. Mais peut-être est-ce la solution...
Merci pour le bout de code et les pistes, je vais creuser tout ça !
C'est lorsqu'on arrête d'apprendre que l'on commence à vieillir
J'ai la liste des codes les uns à la suite des autres dans une variable text sous Unity. Codes qui marchent si je les colle dans le site que tu m'a donné.
Ils commencent tous par la même chaine de caractères donc je devrais pouvoir les décoller facilement. J'imagine que la partie php/sql est donc réglée pour le moment, même si j'ai pas le formatage que je voulais.
Merci beaucoup pour ton aide ! J'irais embêter le forum c# maintenant si j'ai des soucis
C'est lorsqu'on arrête d'apprendre que l'on commence à vieillir
Récupérer et encoder des images longblob avec php
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.