Bonjour a tous.
j'ai des images stockées sous cette forme dans ma base de donnée mysql:
Si je fait:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 iVBORw0KGgoAAAANSUhEUgAAAKgAAACZCAYAAAC7bXG8AAAABGdBTUEAALGOfPtRkwAAACBjSFJ NAAB6JQAAgIMAAPn/AACA6QAAdTAAAOpgAAA6mAAAF2+SX8VGAAA8tklEQVR4Xu19B3dUR7Yu2G RJiCCSCAIEAgVAKIByAGUhIZCEyDkHgcgmmWx7bIMNxh6bmXkTHGbmvrkOc9+77641a9135733u /b7vuquVvXpOqdPt1og7GOvWi26T++uU+erXVX722H8uHHjBC34LxiBMTsCBKjvlpU1R8o2VEhH 11bZve+Q7D98TPYePBq0YAxiMLDnwGHp6Ru
Cela fonctionne mais le probleme,c'est vu que cette chaine binaire est dans la bdd, et dans un fichier de type xml:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <? str_bin = "iVBORw0KGgoAAAA [...] r/QO2s66zb8J8AAAAASUVORK5CYII="; str_type = "image/png"; header ("Content-type: ".$img_type); echo base64_decode($str_bin); ?>
Je me suis dit, je vais utiliser mon code que j'utilise pour recuperer entre chaque balises, mais sa ne marche pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <vCard xmlns="vcard-temp" prodid="-//HandGen//NONSGML vGen v1.0//EN" version="2.0"> [...] <PHOTO> <TYPE>image/png</TYPE> <BINVAL> iVBORw0KGgoAAAANSUhEUgA [...] b8J8AAAAASUVORK5CYII=</BINVAL> </PHOTO> [...] </vCard>
Voici le code d'affichage de l'image avec les recup entre les balises:
Lorsque j'accede a mon image via img.php?user=rhaamo par ex, sa m'afiche du texte, et ce texte c'est l'url que j'ai entré
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 <? $user = @$_GET["user"]; mysql_connect("HOST", "USER", "PASS"); mysql_select_db("DB"); $req = "SELECT * "."FROM jiveVCard WHERE username = '".$user."'"; $ret = mysql_query ($req) or die (mysql_error ()); $col = mysql_fetch_row ($ret); mysql_close(); if (preg_match('#<TYPE>(.*)</TYPE>#', $col[1], $m)) { $img_type = $m[1]; } if (preg_match('#<BINVAL>(.*)</BINVAL>#', $col[2], $m)) { $img_bin = $m[1]; } header ("Content-type: ".$img_type); echo base64_decode($img_bin); ?>
Si quelqun a une petite idée car la je seche un peut
Merchi d'avance.
Partager