Autor Zpráva
lukas_koim
Profil *
Při vypsání obrázku z databáze se mi ukáže pouze text (ąÜ ŁgĂ©C©řëH’5’)#Ó5ç·”$) místo obrázku vkládaného do databáze.
Prosím o pomoc, vůbec nevím kde dělám chybu! Všichni v popisu téhle problematiky mají jen echo "..." a prý se má hned vypsat obrázek, ale u mě nic. Co dělám špatně?

Kód:

(na začátku dokumentu php mám ještě : header("Content-Type: image/jpeg"); )

$sql = "SELECT foto, id
FROM foto
WHERE id = 2";

$vysledek_sql = mysql_query($sql);

$data_img = mysql_fetch_array($vysledek_sql);
echo "<br><br>";

echo $data_img["foto"];
TSD
Profil *
Ještě jsem to nezkoušel, tak nevím, ale myslím že to <br><br> tam určitě nemá co dělat.
lukas_koim
Profil *
to <br><br> je tam jen pro přehlednost, určitě tam nemusí být, ale taky v tom není určitě ta chyba
DJ Miky
Profil
Musíš vypisovat jen ten obrázek, žádné HTML, žádný text.
Petyk
Profil
lukas_koim
to <br><br> je tam jen pro přehlednost, určitě tam nemusí být, ale taky v tom není určitě ta chyba
to teda chyba je, co by měly dělat html značky v obrázku
TSD
Profil *
Souhlasím s DJ Miky. Rozuměj. Ta "stránka" není stránka. Je to něco, co má hlavičku jpeg souboru a jako takové to musí mít čistě binární obsah, a sice to, co vytáhneš z té databáze.
"<br><br> jen pro přehlednost", to je jako by sis otevřel jpg v notepadu a napsal "<br><br>" do toho. V tu chvíli máš po obrázku.
lukas_koim
Profil *
<?
header("Content-Type: image/jpeg");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<link rel="stylesheet" type="text/css" href="pozadi.css">
</head>

<body>

<?php

$pripojeni=mysql_connect("localhost","root","heslo");
$databaze=MySQL_Select_DB("databaze",$pripojeni);

if (!$pripojeni)
{
echo "nepřipojeno";
exit();
}


if (!$databaze)
{
echo "nepřipojeno - databaze";
exit();
}

$imgfile = $_FILES['foto'];
$nazev = $imgfile['name'];
$tmpfile = $imgfile['tmp_name'];
$size = $imgfile['size'];



if(!$tmpfile or !is_uploaded_file($tmpfile))
{
echo "nenačetlo obr";
exit();
}

$file = fopen($tmpfile, "rb");
$imgdata = fread ($file, $size);
$data = mysql_escape_string($imgdata);
fclose($file);
echo $data;



$prikaz=MySQL_Query("INSERT INTO foto (id, foto) VALUES (NULL, '$data');");

if (!$prikaz)
echo "neprovedl se prikaz";
else{
echo "příkaz se provedl";
}

$sql = "SELECT foto, id
FROM foto
WHERE id = $id";

$vysledek_sql = mysql_query($sql);

$data_img = mysql_fetch_array($vysledek_sql);


echo $data_img["foto"];

?>


</body>
</html>
lukas_koim
Profil *
aha už to asi chápu.. jak to myslíte... zkusím to znovu..
lukas_koim
Profil *
hmmm pořád nic... co takhle?

Soubor images.php

<html>
<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">

</head>

<body>

<img src="images3.php?id=2">

</body>
</html>

------------------------------

Soubor images3.php

<?php
$id = $_GET["id"];

$pripojeni=mysql_connect("localhost","root","heslo");
$databaze=MySQL_Select_DB("databaze",$pripojeni);


$sql = "SELECT foto FROM foto WHERE id = $id ";

$vysledek_sql = mysql_query($sql);

$data_img = mysql_fetch_array($vysledek_sql);

header("Content-Type: image/jpeg");
echo  $data_img["foto"];

?>
kacica
Profil *
Ja mam problem, ze mne sa vobec nezobrazi obrazok, pouzivam ten isty kod ako bol naposledy spomenuty, ale obrazok nikde :( zda sa, ze to do image3.php ani nevlezie, proste zobrazi sa to ako neexistujuci obrazok. poradite mi?
suky
Profil
lukas_koim
Jeste nikdy jsem nevidel, ze by se obrazek vypisoval echem... Na vypisovani obrazku jsou v PHP definovane funkce viz (link).

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0