Platzhalter statt Bild aus der mysql db wird angezeigt

mrtest

Mitglied
Hallo Leute,
ich habe ein riesiges Problem und habe mittlerweile hier und auch über google lange nach der Lösung gesucht.

Es sieht so aus, dass ich einen Datenbank habe in der ich Bilder speichern möchte und nicht die Links(ist so gefordert). Wenn ich jetzt eine Abfrage an Datenbank schicke, bekomme statt des Bildes nur einen Platzhalter.

Die Fehlermeldung die der Browser ausgibt: The image “http://localhost/projekt/test.php” cannot be displayed, because it contains errors.

Vielleicht könnt ihr mir helfen

Danke

P.S: Hier einer der vielen versuche die nicht funktionieren:
mysql_connect("localhost","root","");

mysql_select_db("binary_data");

$query = "select bin_data,filetype from binary_data where id=$id";
$result = mysql_query($query);

$data = mysql_result($result,0,"bin_data");
$type = mysql_result($result,0,"filetype");

header( "Content-type: $type");
echo $data;
 
Zuletzt bearbeitet:
oO was willst du uns mit deinem Localhostlink sagen?

Hm ka aber @mrtest zum einen was steht in der typ tabelle für werte drinnen? Zum anderen hoffe ich, dass du das script dann als bild in einer anderen page einbindest ala <im src="deinscript.php"> da du ansonsten nix zusätzlichess ausgebn darfst.
 
ja alles schon ausprobiert.
ich rufe mein script aus einer anderen .html Seite mit <img src=".php"> auf. hab auch mal dies mit der Übergabe einer Id versucht und nach dieser aus der db selektiert. Alles nichts genutzt.
die daten werden als BLOB gespeichert und befindern sich nach insert auch in der db drin.
 
Zuletzt bearbeitet:
@Oliver Gringel
Danke für dein Tipp. Nach endlosen stunden habe ich den Fehler gefunden. Falls es interessiert man darf vor dem echo $row['Picture']; (oder wie aus dem bsp echo $data) kein anderes Zeichen ausgeben.
Ich habe gleich mehrer Fehler gemacht:

1) Auf Systemen, welche zwischen Binär- und Textdateien (z.B. Windows) unterscheiden, muss die Datei mit 'b' im fopen() Mode-Parameter geöffnet werden. Der Parameter "r" reicht nicht.
$fd = addslashes(fread(fopen($_FILES['img']['tmp_name'], "rb"), $_FILES['img']['size']));

2) wie schon gesagt kein anderes Zeichen darf vor der eigentlichen Bild mehr ausgegeben werden. Ich habe am Anfang der Zeile das aktuelle Datum ausgegeben. :confused:

3) Es darf keine leerzeile unterdem "<?" stehen


<?
if(!($dbLink = mysql_pconnect ("127.0.0.1", "root", ""))) {
print("Keine Verbindung möglich");
exit(0);
}
if(!mysql_select_db("mysql", $dbLink)) {
print("Keine Datenbank<br>");
print("Abbruch!");
exit(0);
}
$Query ="SELECT Picture FROM books WHERE id=60";
$dbResult = mysql_query($Query,$dbLink);
$row = mysql_fetch_array($dbResult);
header('Content-type: image/gif');
echo $row['Picture'];
?>
 
Zurück