ich speichere Bilder in einer Datenbanktabelle.
Das Hochladen mit php hab ich jetzt so weit, nun hab ich das Problem,
dass ich Bilder zwar anzeigen kann, aber immer nur Eins ohne weitere Inhalte, also das blanke Bild im Browserfenster.
Das Bild soll aber Bestandteil einer kompletten Webseite werden, bzw. einer tabellarischen Liste.
Wie geht man da vor ?
Den Code hab ich natürlich nicht selbst gebastelt, sondern von einem Buch

Wenns jemanden interessiert, unten ist der Original-Code, den ich für meinen Zweck natürlich angepasst habe.
Wer es auspobieren will, muss sich nur noch die Tabelle basteln

Code: Alles auswählen
<?php
$dbcnx = mysql_connect("localhost", "root", "pw");
mysql_select_db("dbname");
if (($action == "view" or $action == "dnld") and $id != "") {
// Benutzer ruft eine Datei ab
$sql = "SELECT FileName, MimeType, FileData
FROM filestore WHERE ID = '$id'";
$result = @mysql_query($sql);
if (!$result) die("Datenbankfehler: " . mysql_error());
$filename = mysql_result($result,0,"FileName");
$mimetype = mysql_result($result,0,"MimeType");
$filedata = mysql_result($result,0,"FileData");
if ($action == "dnld") {
if (strpos($HTTP_USER_AGENT,"MSIE"))
$mimetype = "application/x-download";
else
$mimetype = "application/octet-stream";
}
header("Content-disposition: filename=$filename");
header("Content-Type: $mimetype");
header("Content-Length: " . strlen($filedata));
echo($filedata);
exit();
// Benutzer ruft eine Datei ab
$sql = "SELECT FileName, MimeType, FileData
FROM filestore WHERE ID = '$id'";
$result = @mysql_query($sql);
if (!$result) die("Datenbankfehler: " . mysql_error());
$filename = mysql_result($result,0,"FileName");
$mimetype = mysql_result($result,0,"MimeType");
$filedata = mysql_result($result,0,"FileData");
if ($action == "dnld") {
if (strpos($HTTP_USER_AGENT,"MSIE"))
$mimetype = "application/x-download";
else
$mimetype = "application/octet-stream";
}
header("Content-disposition: filename=$filename");
header("Content-Type: $mimetype");
header("Content-Length: " . strlen($filedata));
echo($filedata);
exit();
} elseif ($action == "del" and $id != "") {
// Benutzer loescht eine Datei
$sql = "DELETE FROM filestore WHERE ID = '$id'";
$ok = @mysql_query($sql);
if (!$ok) die("Datenbankfehler: " . mysql_error());
header("Location: $PHP_SELF");
exit();
} elseif ($action == "ulfile" and $uploadfile != "") {
// Ausschliessen, dass eine Datei kein Upload ist
if (!is_uploaded_file($uploadfile))
die("$uploadfile ist keine hochgeladene Datei!");
// Datei zum binaeren Einlesen oeffnen ("rb")
$tempfile = fopen($uploadfile,"rb");
// Gesamte Datei in den Arbeitsspeicher einlesen, wobei die PHP-Funktion filesize benutzt wird
// um die Dateigroesse zu ermitteln.
$filedata = fread($tempfile,filesize($uploadfile));
// Einfuegen in die Datenbank vorbereiten, indem
// vor irgendwelche Sonderzeichen Backslashes gesetzt werden
$filedata = addslashes($filedata);
// SQL-Anfrage formulieren
$sql = "INSERT INTO filestore SET
FileName = '$uploadfile_name',
MimeType = '$uploadfile_type',
Description = '$desc',
FileData = '$filedata'";
//Einfuegen durchfuehren
$ok = @mysql_query($sql);
if (!$ok) die("Datenbankfehler beim Einfügen der Datei: " . mysql_error());
header("Location: $PHP_SELF");
exit();
}
// Vorgabemaessige Seite: Gespeicherte Dateien anzeigen
$sql = "SELECT ID, FileName, MimeType, Description
FROM filestore";
$filelist = @mysql_query($sql)
or die("Datenbankfehler: " . mysql_error());
?>
<html>
<head>
<title> PHP/MySQL Dateimagazin </title>
</head>
<body>
<h1>PHP/MySQL Dateimagazin</h1>
<form action="<?=$PHP_SELF?>?action=ulfile" method="post"
enctype="multipart/form-data">
<p>Datei hochladen:<br />
<input type="file" name="uploadfile" /></p>
<p>Dateibeschreibung:<br />
<input type="text" name="desc" maxlength="255" /></p>
<p><input type="submit" name="go" value="Hochladen" /></p>
</form>
<p>Folgende Dateien sind in der Datenbank gespeichert:</p>
<table width="85%" border="0" cellpadding="0" cellspacing="0">
<tr>
<th align="left">Dateiname</th>
<th align="left">Typ</th>
<th align="left">Beschreibung</th>
</tr>
<?php
if (mysql_num_rows($filelist) > 0) {
while ($f = mysql_fetch_array($filelist)) {
?>
<tr valign="top">
<td nowrap>
<a href="<?=$PHP_SELF?>?action=view&id=<?=$f['ID']?>">
<?=$f['FileName']?></a>
</td>
<td nowrap><?=$f['MimeType']?></td>
<td><?=$f['Description']?></td>
<td nowrap>
[<a href="<?=$PHP_SELF?>?action=dnld&id=<?=$f['ID']?>"
>Download</a> |
<a href="<?=$PHP_SELF?>?action=del&id=<?=$f['ID']?>"
onClick="return confirm('Diese Datei löschen?');"
>Löschen</a>]
</td>
</tr>
<?php
}
} else {
?>
<tr><td colspan="3" align="center">Keine Dateien vorhanden!</td></tr>
<?php
}
?>
</table>
</body>
</html>