- Code: Select all
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=iso-8859-1" />
<link href="table.css" rel="stylesheet" type="text/css">
<title>Handling images</title>
</head>
<body>
<?php
//Fehler anzeigen lassen(nach Fertigstellung wieder entfernen)
error_reporting(E_ALL);
//Verbindung zu Datenbank herstellen
$host = 'localhost'; //Dringend nachtragen
$user = 'user'; //Dringend nachtragen
$password = '123456'; //Dringend nachtragen
$database = 'testimages'; //Dringend nachtragen
$link = mysql_connect($host,$user,$password);
mysql_select_db($database);
//Bilder speichern
$submitbtn=$_POST['submitbtn'];
$descr=$_POST['descr'];
$imgfile=$_FILES['imgfile'];
if($submitbtn == 'OK' and is_array($imgfile)) {
$name = $imgfile['name'];
$type = $imgfile['type'];
$size = $imgfile['size'];
$uperr = array_item($imgfile, 'error');
$tmpfile = $imgfile['tmp_name'];
if(!$descr) $descr = $name;
switch ($type) {
case "image/gif":
$mime = "GIF Image"; break;
case "image/jpeg":
case "image/pjpeg":
$mime = "JPEG Image"; break;
case "image/png":
case "image/x-png":
$mime = "PNG Image"; break;
default:
$mime = "unknown";
}
if(!$tmpfile or $uperr or $mime == "unknown" or !is_uploaded_file($tmpfile))
/* echo "<p>An error occured when processing the form data:
Perhaps you forgot to specify an
image file or the file is too large
or the image type is unknown.</p>\n"; */
echo "<p>Es ist ein Fehler aufgetreten. Mögliche Ursachen:
Sie haben vergessen, den Dateinamen des Bilds anzugeben,
oder das Bild ist zu groß oder sein Dateityp ist unbekannt.</p>\n";
else {
// read the uploaded file and save it into database
$file = fopen($tmpfile, "rb");
$imgdata = fread($file, $size);
fclose($file);
if(!$mysqli_query(
"INSERT INTO images (name, type, image) " .
"VALUES ('" . $mysqli_escape_string($descr) . "', " .
" '$mime', " .
" '" . $mysqli_escape_string($imgdata) . "')"))
printf("<p>Das Bild konnte nicht gespeichert werden: %s</p>\n", $mysqli_error);
}
}
echo "<h2>Zuletzt eingefügte Bilder ...</h2>\n";
$sql =
"SELECT id, name, " .
"DATE_FORMAT(ts, '%Y/%c/%e %k:%i') AS dt " .
"FROM images ORDER BY ts DESC LIMIT 10";
$result = mysql_query($sql) OR die(mysql_error()) ;
$num_rows = mysql_num_rows($result);
if($num_rows==0)
echo "<p>In der Datenbank befinden sich noch keine Bilder ...</p>\n";
else {
while($row = mysql_fetch_object($result))
$rows[] = $row;
echo '<table>', "\n<tr>";
for($i=0; $i<sizeof($rows); $i++) // images
echo '<th>',
"<img src=\"showpic.php?id=" .
$rows[$i]->id . "\" /></th>";
echo "</tr>\n<tr>";
for($i=0; $i<sizeof($rows); $i++) // names/descriptions
echo "<td>" . htmlentities($rows[$i]->name) . "</td>";
echo "</tr>\n<tr>";
for($i=0; $i<sizeof($rows); $i++) // date+time
echo "<td>" . $rows[$i]->dt . "</td>";
echo "</tr>\n</table>\n";
}
?>
<h2>Bild-Upload</h2>
<p>Maximimale Dateigröße 200 kB. Zulässige Formate: PNG, JPEG and GIF.</p>
<table>
<form method="post" action="images.php" enctype="multipart/form-data">
<input type="hidden" value="204800" name="MAX_FILE_SIZE" />
<tr><td>Beschreibung (optional):</td>
<td><input name="descr" type="text" /></td></tr>
<tr><td>Dateiname:</td>
<td><input name="imgfile" type="file" /></td></tr>
<tr><td></td>
<td><input type="submit" value="OK" name="submitbtn" /></td></tr>
</form>
</table>
</body></html>
Der oben stehende Code soll mir Bilder aus eine DB anzeigen und eine Upload erlauben.
Ich erhalte zwar keine Fehlermeldung, jedoch wird das Bild nicht angezeigt. Ausserdem funktionert der Upload überhaupt nicht. Kann mir jemand da weiter helfen?