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 tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
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