Supportnet / Forum / Skripte(PHP,ASP,Perl...)
ausgabe eines bildes
Frage
so, nachdem mein letztes problem immer noch nicht gelöst ist, habe ich ein neues, das wahrscheinlich leichter zu lösen ist:
das script soll aus der mysql datenbank ein bild auslesen und ausgeben. soweit kein problem. wenn dies aber nicht vorhanden ist, soll da ein dummy-bild hin. dieses wird nicht angezeigt. wer kennt sie damit aus?
[code]
elseif ($prgm == "show_image")
{
$sql = "SELECT `image_type`,`image_data` FROM `user` WHERE `id` = '$userid'";
$qry = mysql_query($sql);
$result = mysql_fetch_array($qry);
if (isset($result['image_data']))
{
$imagedata = $result['image_data'];
$type = $result['image_type'];
}
else
{
$type = "image/gif";
$filedata = "pics/steady-pics/johndoe.gif";
$imagedata = addslashes(fread(fopen($filedata, "r"), filesize($filedata)));
}
header("Content-type: $type");
echo $imagedata;
}
[/code]
Antwort 1 von semi
Statt
Übrigens, wie kommst Du auf die Idee bei Binärdaten (*.gif) addslashes zu verwenden :-)
Gruß,
Michael
else
{
$type = "image/gif";
$filedata = "pics/steady-pics/johndoe.gif";
$imagedata = addslashes(fread(fopen($filedata, "r"), filesize($filedata)));
}else
{
header("Content-type: image/gif");
readfile("pics/steady-pics/johndoe.gif");
exit();
}Übrigens, wie kommst Du auf die Idee bei Binärdaten (*.gif) addslashes zu verwenden :-)
Gruß,
Michael
Antwort 2 von Feuervogel
hmmm, joa vielen dank auch, werds gleich mal auspobieren!!!
das mit dem addslashes: ich hab mir zuerst ein tut über das thema durchgelesen, bevor ich von einem freund den tipp "$_FILES" bekam, das hat sich dann etwas vermischt.
das tut ist im übrigen der letzte s*chrott, voller fehler irgendwie:
http://www.phpbuilder.com/columns/florian19991014.php3
danke!!!
das mit dem addslashes: ich hab mir zuerst ein tut über das thema durchgelesen, bevor ich von einem freund den tipp "$_FILES" bekam, das hat sich dann etwas vermischt.
das tut ist im übrigen der letzte s*chrott, voller fehler irgendwie:
http://www.phpbuilder.com/columns/florian19991014.php3
danke!!!
Antwort 3 von Feuervogel
es geht nicht. dazu sei aber auch noch zu sagen, dass das ganze in ner image-src steht, also <img src="show-image.php?id=3">. nach dem motto.
habs jetzt so verändert:
habs jetzt so verändert:
elseif ($prgm == "show_image")
{
$sql = "SELECT `image_type`,`image_data` FROM `user` WHERE `id` = '$userid'";
$qry = mysql_query($sql);
$result = mysql_fetch_array($qry);
if (isset($result['image_data']))
{
$imagedata = $result['image_data'];
$type = $result['image_type'];
}
else
{
header("Content-type: image/gif");
readfile("pics/steady-pics/johndoe.gif");
exit();
}
header("Content-type: $type");
echo $imagedata;
}
Antwort 4 von Feuervogel
ah, wenn ich
header("Content-type: image/gif");
readfile("pics/steady-pics/johndoe.gif"); exit();
in eine einzelne datei schmeiße klappts.
header("Content-type: image/gif");
readfile("pics/steady-pics/johndoe.gif"); exit();
in eine einzelne datei schmeiße klappts.
Antwort 5 von semi
Erstelle ein Testskript mit folgendem Inhalt
Wenn es funktioniert, dann liegt der Fehler irgendwo früher in Deinem Skript.
Sonst mal zum Test paar Ausgaben mit echo machen (um zu sehen, welcher Zweig ausgeführt wird). Dann natürlich nicht im IMG-Tag, sondern direkt in der Adresszeile des Browsers.
Viel Spaß beim Suchen :)
<?php
header("Content-type: image/gif");
readfile("pics/steady-pics/johndoe.gif");
?>Wenn es funktioniert, dann liegt der Fehler irgendwo früher in Deinem Skript.
- Zugriffsrechte der GIF-Datei checken
- Ist die GIF-Datei auch OK, oder wurde sie versehentlich im ASCII-Modus zum Server geschickt.
- Pfad mal mit ./pics/.... versuchen (beachte den Punkt am Anfang)
- Vor dem Header Befehl darf keine Ausgabe erfolgen.
Sonst mal zum Test paar Ausgaben mit echo machen (um zu sehen, welcher Zweig ausgeführt wird). Dann natürlich nicht im IMG-Tag, sondern direkt in der Adresszeile des Browsers.
Viel Spaß beim Suchen :)
Antwort 6 von Feuervogel
ja, danke, bin dabei:)
Antwort 7 von Feuervogel
so, hab gleich mehrere fehler entdeckt (dank deiner ausführlichen beschreibung!!!) und das ganze ist nun in einem eigenen script.
sieht so aus:
danke an alle für die schnelle hilfe!
sieht so aus:
<?php
include("include/connect.php");
$userid = $_REQUEST['id'];
$sql = "SELECT `image_type`,`image_data` FROM `user` WHERE `id` = '$userid'";
$qry = mysql_query($sql);
$result = mysql_fetch_array($qry);
if ($result['image_data'] == "")
{
header("Content-type: image/gif");
readfile("pics/steady-pics/johndoe.gif");
exit();
}
else
{
header("Content-type: {$result['image_type']}");
echo $result['image_data'];
}
?>
danke an alle für die schnelle hilfe!

