Bilder aus MySQL anzeigen lassen

User Maik

Mitglied
Hallo
Wie lasse ich mir Bilder die ich in der Datenbank gespeichert habe wieder anzeigen.
Datenbanddesign:

ID image_type image image_size image_name image_time
1 image/pjpeg Blob 2421 name.gif 2002.10.10

<?
@mysql_connect("10.212.72.151","root");
@mysql_select_db("mymarket");

$query = "select image,image_type from image";
$result = @mysql_query($query);
$data = @mysql_result($result,0,"image");
$type = @mysql_result($result,0,"image_type");
header("Content-type: $type");
echo $data;
?>

Was nicht geht, mit der Fehlermeldung: Kann die Headerinformation nicht öffnen.
Und die Ausgebe: ƒMzvçÔ0*c– ѬñgŒ und so weiter.
 
Mal eine Frage. Ist das für deine Anwendung wirklich nötig, dass du die Bilder binär in der Datenbank speicherst?
Wenn es nur darum geht, dass der User nicht den direkten Link zu Bildern bekommt, das kann man auch anders lösen und zwar indem man (auch mit einer DB) abhängig von einer ID aus der DB den Pfad liest und dieses Bild streamt.
 
Richtg!
Man kann Bilder durch einen Pfad in der DB Speichern, das wohl durchaus leicher ist, aber ich habe Vorlagen bekommen Bilder Binär zu speichern, was auch nicht besonders schwierig ist. Das Problem ist wie lese ich die Bilder wieder aus der DB?
 
Noch keine Lösung!

Kann jedes Image aus der Datenbank MySQL durch den Browser aufrufen.
z.b.: http://image.php?iid=25

Das richtige Image wird angezeigt.

Hintegrund:
Ich habe alle Image in die Datenbank hochgeladen.
Zu jeder Produktbeschreibung soll ein Image angefügt werden.
 
was ist den das für ein link

damit kann ich nichts anfangen.. kann dir mal mein teil posten, sobald ich meinen server wieder hergerichtet habe...
 
Hallo, bin etwas weiter gekommen.
<?
$conn = mysql_connect("XX","root") OR DIE (mysql_error());
@mysql_select_db("mymarket", $conn) OR DIE (mysql_error());
$sql = "SELECT * FROM image WHERE image_id="."<? pv($prod->image_id) ?>";
$result = mysql_query($sql, $conn);
if (mysql_num_rows ($result)>0) {
$row = @mysql_fetch_array ($result);
$image_type = $row["image_type"];
$image = $row["image"];
Header ("Content-type: $image_type");
print $image;
}
?>

Die <? pv($prod->image_id) ?> ID gibt den richtigen Wert aus der DB an.
Es kommt aber folgende Fehlermeldung.
Cannot add header information - headers already sent by (auf Zeile Header)
 
Wie greift man auf Bilder zu die in MySQL binär gespeicher wurden.
<img src="../admin/upload_image/image.php?iid=<? pv($prod->image_id) ?>" width="40" height="40">

Die "<? pv($prod->image_id) ?>" kommt aus meiner Tabelle Produkte.

;)
Problem erledig.

Image.php=>
<?php
$conn = mysql_connect("localhost", "user") OR DIE (mysql_error());
@mysql_select_db ("mymarket", $conn) OR DIE (mysql_error());
$sql = "SELECT * FROM image WHERE image_id=".$_GET["iid"];
$result = mysql_query ($sql, $conn);
if (mysql_num_rows ($result)>0) {
$row = @mysql_fetch_array ($result);
$image_type = $row["image_type"];
$image = $row["image"];
Header ("Content-type: $image_type");
print $image;
}
?>
 
gib mir 2 tage und ich werd dir meinen code posten... bin gerade in der schule und habe keine gelegenheit den code zu posten...
 
Zurück