base64_decode problem

Tags:    php

Hej allesammen

Jeg har endelig fået taget mig sammen til at prøve og lave noget i php. Jeg er ved at lave Form, hvor man kan indtaste noget tekst i nogle textboxe, samt uploade et billede. Det hele bliver gemt i en mysql database. Billedet bliver encodet med base64. Efter som jeg har fået gemt noget i min database vil jeg også gerne have mit data ud igen.

Det er ikke noget problem at få teksten fra mine textboxe udskrevet, men når jeg prøver at "print" mine billeder kommer det ud som "undecoded". Hvordan får jeg mine billeder decoded igen ?

Her er et link til siden hvor problemet opstår:
http://www.dca-online.dk/alletiderskup/kupoversigt.php

Som i kan se, bliver der bare udskrevet en masse ubrugelige tegn i den kolonne der hedder "billede".


Her er koden som jeg arbejder på:
<?php
mysql_connect("localhost", "XXXXXXX", "XXXXXXX");


mysql_select_db("XXXXXXXX");


$result=mysql_query("SELECT * FROM kup ");


while($info = mysql_fetch_array( $result ))
{
print "<table width=\"200\" border=\"1\">
<tr>
<td>Titel</td>
<td>".$info['titel'] . "</td>
</tr>
<tr>
<td>Beskrivelse</td>
<td>".$info['beskrivelse'] . "</td>
</tr>
<tr>
<td>Dato</td>
<td>".$info['dato'] . "</td>
</tr>
<tr>
<td>Link</td>
<td>".$info['link'] . "</td>
</tr>
<tr>
<td>Billede</td>
<td>".$encoded=$info['billede']. "</td>
</tr>
</table>";
}

mysql_close();


echo base64_decode($encoded);

?>



Jeg håber i kan hjælpe mig lidt på vej.

Tak på forhånd

Hilsen Lasse



Indlæg senest redigeret d. 16.09.2009 23:47 af Bruger #15304
5 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
Du skal jo lige huske at lave et billede ud af det. Indtil nu er det jo "bare" tekst. Du skal loade det ind i en fil, gemme den på disk og give browseren et link til den. Alternativt skal du fortælle browseren at nu sender du et billede den skal rendere, det kan gøres ved at sætte content type. Men hvorfor gå den lange vej med at gemme billedet i databasen. Database plads er dyrere end diskplads, gem navnet til filen i databasen og så gem filen på disk, så kan du altid få fat i filen.



Jeg tror det er dette du søger:

http://dk2.php.net/base64_decode



okay, det kunne være jeg skulle overveje at gemme filen på disk istedet for så. Men jeg kunne godt tænke mig at få min nuværende løsning til at virke.

Kan du give et eksempel på hvordan man kan fortælle browseren at den skal rendere et billede med content type eller den anden løsning med at loade "teksten" ind i en fil ?

Tak for svaret.. :)



Jeg kender ikke noget til PHP. men se det her:
http://danielmclaren.net/2008/03/embedding-base64-image-data-into-a-webpage

han advarer også mod at gøre det med store billeder (embedde dem). Hvis du skal gemme det til fil skal du
1. Oprette en fil med den samme extension som dit billede havde da du gemte det
2. Skrive dint base64 decoded indhold ned i filen.
3. gemme filen på disk
4. lav en reference til den fra et <img> tag



okay, det vil jeg forsøge.

tak for svaret.



t