Hallo,
ich will in meine Datenbank unter anderem Bilder speichern und natürlich auch wieder laden.
Das speichern funktioniert auch wunderbar mit folgendem Script:
Was aber jetzt mein Problem ist, dass ich mit folgendem Script die Bilder, bzw. is ja immer nur ein Bild wieder aus meiner MySql Datenbank lesen will:
Auf der entsprechenden Webseite greife ich dann über
echo '<img src="img_get.php?id=2">';
auf das obige Script zu und will das Bild wieder darstellen. Da passiert aber leider gar nichts.
Jetzt war ich einfach mal so frech, und habe das in meine Webseite das zweite Script "direkt laufen lassen", d.H so:
Um zu sehen woran es liegt das ich nichts sehe. Ich bekomme dann auch folgende Fehlermeldung:
Warning: Cannot modify header information - headers already sent by (output started
Ich habe auch schon gegoogelt und darauf geachtet, dass ich in dem zweiten Script das ich gepostet habe keine leerzeichen am Anfang oder Schluss stehen. Bin sehr verzweifelt...
Habt ihr eine Ahnung an was es liegen kann? Es sind definitiv Daten in meiner DB. Wenn ich statt
echo '<img src= $row[' .imgdata .']>';
echo $row[' .imgdata .'];
Schreibe sehe ich ziemlich viele wirre Zeichen. Das passt ja, da ich die Bilder Binär in meine Db speichere.
Vielen Dank im Vorraus
ich will in meine Datenbank unter anderem Bilder speichern und natürlich auch wieder laden.
Das speichern funktioniert auch wunderbar mit folgendem Script:
PHP-Code:
<?php
// img_up.php: Ein Bild hochladen
require_once 'connect.inc.php';
if (array_key_exists('img',$_FILES)) {
$tmpname = $_FILES['img']['tmp_name'];
$type = $_FILES['img']['type'];
$hndFile = fopen($tmpname, "r");
$data = addslashes(fread($hndFile, filesize($tmpname)));
$strQuery = "INSERT INTO images
(imgdata,imgtype) VALUES
('$data','$type')" ;
if (!mysql_query( $strQuery))
die(mysql_error());
}
?>
<html><body>
<h1>Bild hochladen</font></h1>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"
enctype="multipart/form-data">
Bilddatei:<br />
<input type="file" name="img" size="40"><p>
<input type="submit" name="submit" value="Abschicken">
</form></body></html>
PHP-Code:
<?php
// img_get.php: Bild abrufen
require_once 'connect.inc.php';
$id = $_GET['id'];
$strQuery= "select imgdata,imgtype
from images where id=$id";
$result=mysql_query($strQuery);
$row=mysql_fetch_assoc($result);
header("Content-type: {$row['imgtype']}");
echo $row['imgdata'];
?>
echo '<img src="img_get.php?id=2">';
auf das obige Script zu und will das Bild wieder darstellen. Da passiert aber leider gar nichts.
Jetzt war ich einfach mal so frech, und habe das in meine Webseite das zweite Script "direkt laufen lassen", d.H so:
PHP-Code:
...
require_once 'connect.inc.php';
$id = $_GET['id'];
$strQuery= "select imgdata,imgtype
from images where id=2";
$result=mysql_query($strQuery);
$row=mysql_fetch_assoc($result);
header("Content-type: {$row['imgtype']}");
echo '<img src= $row[' .imgdata .']>';
...
Warning: Cannot modify header information - headers already sent by (output started
Ich habe auch schon gegoogelt und darauf geachtet, dass ich in dem zweiten Script das ich gepostet habe keine leerzeichen am Anfang oder Schluss stehen. Bin sehr verzweifelt...
Habt ihr eine Ahnung an was es liegen kann? Es sind definitiv Daten in meiner DB. Wenn ich statt
echo '<img src= $row[' .imgdata .']>';
echo $row[' .imgdata .'];
Schreibe sehe ich ziemlich viele wirre Zeichen. Das passt ja, da ich die Bilder Binär in meine Db speichere.
Vielen Dank im Vorraus

Kommentar