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>
Annonceindlæg fra Barco
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.
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; ?>
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>
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"...
22. januar 2008 - 20:53
#5
Min f_content indeholder BLOB'en, f_type indeholder image/pjpeg
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...
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?
22. januar 2008 - 22:38
#8
prøv $content = mysql_real_escape_string($content); i stedet for addslashes...
22. januar 2008 - 23:07
#9
Og du har husket at fjerne body og img tagene fra den fil som skal vise billedet ??
23. januar 2008 - 22:01
#10
coderdk>> så fik jeg det endelig til at virke - smid et svar!
23. januar 2008 - 23:06
#11
ok :)
Vi tilbyder markedets bedste kurser inden for webudvikling