Avatar billede sbay Nybegynder
22. januar 2008 - 13:47 Der er 10 kommentarer og
1 løsning

Få vist mit billede fra en MySQL database

Hejsa

Jeg har lavet følgende kode, for at få vist et billede jeg gemmer i en database - men jeg får bare vist en masse tegn.... hvorfor?

<body>
<?php

include('access.php');
$sql = "SELECT * FROM train_images WHERE f_id = 4";
echo $sql;
$res = mysql_query($sql);
$type = mysql_result($res, 0, "f_type");
echo "<br>".$type;
$billede = mysql_result($res, 0, "f_content");
echo "<br>".$billede;
header("Content-type: ".$type);
//print stripslashes($billede);
?>
<img src="<?php print stripslashes($billede); ?>">

</body>
Avatar billede dkfire Nybegynder
22. januar 2008 - 16:43 #1
Nok fordi du gemmer selv billedet og IKKE stien til billedet.
Det du ser på skærmen er de værdier som et billede består af.

Lige en oplysning:
Hvis du vil bruge header() så må du ikke have skrevet noget ud på skærmen inden da, dvs ingen echo eller html koder inden da.
Avatar billede coderdk Praktikant
22. januar 2008 - 17:46 #2
Hele koden bør være:

<?php

include('access.php');
$sql = "SELECT * FROM train_images WHERE f_id = 4";
$res = mysql_query($sql);
$type = mysql_result($res, 0, "f_type");
$billede = mysql_result($res, 0, "f_content");
header("Content-type: ".$type);
echo $billede;

?>
Avatar billede sbay Nybegynder
22. januar 2008 - 20:37 #3
coderdk >> Nu har jeg prøvet med din kode - jeg får stadig vist alle mulige tegn. Skal jeg ikke have noget stripslashes med (har den med i upload)?

<body>
<?php
include('access.php');
$sql = "SELECT * FROM train_images WHERE f_id = 4";
$res = mysql_query($sql);
$type = mysql_result($res, 0, "f_type");
$billede = mysql_result($res, 0, "f_content");
header("Content-type: ".$type);
?>
<img src="<?php echo $billede; ?>">

</body>
Avatar billede coderdk Praktikant
22. januar 2008 - 20:41 #4
Nej, det script jeg har pastet er *alt* hvad scriptet skal indeholde - Der må ikke kommet noget ud før! f_content skal indeholde noget i stil med "image/jpeg"...
Avatar billede sbay Nybegynder
22. januar 2008 - 20:53 #5
Min f_content indeholder BLOB'en, f_type indeholder image/pjpeg
Avatar billede coderdk Praktikant
22. januar 2008 - 21:02 #6
Ah, ja også den jeg mente :) Men så burde det også virke. Du *kan* evt. prøve min version med stripslashes på $billede...
Avatar billede sbay Nybegynder
22. januar 2008 - 22:13 #7
Det virker f..... ikke! Jeg fatter det ikke. Her er min insert

$fileName = $_FILES['userfile']['name'];
$tmpName  = $_FILES['userfile']['tmp_name'];
$fileSize = $_FILES['userfile']['size'];
$fileType = $_FILES['userfile']['type'];
echo $fileName;

$fp      = fopen($tmpName, 'r');
$content = fread($fp, filesize($tmpName));
$content = addslashes($content);
fclose($fp);

if(!get_magic_quotes_gpc())
{
    $fileName = addslashes($fileName);
}

Record fra tabellen:
2    DSCN8671.JPG    295105    image/pjpeg    BLOB

Hvorfor virker det skidt ikke?
Avatar billede coderdk Praktikant
22. januar 2008 - 22:38 #8
prøv

$content = mysql_real_escape_string($content);

i stedet for addslashes...
Avatar billede dkfire Nybegynder
22. januar 2008 - 23:07 #9
Og du har husket at fjerne body og img tagene fra den fil som skal vise billedet ??
Avatar billede sbay Nybegynder
23. januar 2008 - 22:01 #10
coderdk>> så fik jeg det endelig til at virke - smid et svar!
Avatar billede coderdk Praktikant
23. januar 2008 - 23:06 #11
ok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester