<?php
include "db_config.php";
$upload_status = array();
$jahr = $_POST['jahr'];
$kategorie = $_POST['kategorie'];
$ordner = $kategorie . "_" . $jahr;
$pfad = '';
$id = $_POST['seite'];
$maxsize = 1048576; // Maximal erlaubte Dateigröße (in Bytes)
$extensions = array('jpg', 'png', 'gif', 'jpeg'); // erlaubte Dateiendungen
// übergeordneten Ordner erstellen
if (!file_exists($ordner) || !is_dir($ordner)) {
mkdir($ordner, 0700);
}
// Thumbnailordner erstellen
if (!file_exists($ordner . "/" . "TN") || !is_dir($ordner . "/" . "TN")) {
mkdir($ordner . "/" . "TN", 0700);
}
// Originalordner erstellen
if (!file_exists($ordner . "/" . "GR") || !is_dir($ordner . "/" . "GR")) {
mkdir($ordner . "/" . "GR", 0700);
}
// Bilder durchlaufen
for ($i = 0;$i < count($_FILES['imagefile']['name']);$i++) {
$zufallsname = md5(uniqid(microtime())); //neuen Dateinamen erzeugen
$file_extension = substr(strrchr($_FILES['imagefile']['name'][$i], '.'), 1); // Erweiterung der Datei ermitteln
if ($_FILES['imagefile']['error'][$i] != UPLOAD_ERR_NO_FILE) {
// Erlaubte Dateiendungen prüfen
if (in_array($file_extension, $extensions)) {
//Erlaubte Größe prüfen
if (filesize($_FILES['imagefile']['tmp_name'][$i]) < $maxsize) {
if ($_FILES['imagefile']['error'][$i] == UPLOAD_ERR_OK) {
$tmpname = $_FILES['imagefile']['tmp_name'][$i];
//$bildname = $_FILES['imagefile']['name'][$i];
$neuername = $zufallsname . "." . $file_extension;
$pfad_TN = $ordner . "/" . "TN" . "/" . $neuername;
$pfad_GR = $ordner . "/" . "GR" . "/" . $neuername;
// Bilddaten ermitteln
$size = getimagesize("$tmpname");
$breite = $size[0];
$hoehe = $size[1];
//Thumbnail skalieren
$Breite_TN = 120;
$Hoehe_TN = intval($hoehe*$Breite_TN/$breite);
//Original skalieren
$Breite_GR = 600;
$Hoehe_GR = intval($hoehe*$Breite_GR/$breite);
// GIF
if ($size[2] == 1) {
$altesBild = imagecreatefromgif("$tmpname");
$TN = imagecreatetruecolor($neueBreite, $neueHoehe);
imagecopyresampled($TN, $altesBild, 0, 0, 0, 0, $Breite_TN, $Hoehe_TN, $breite, $hoehe);
imagegif($TN, "$pfad_TN", 50);
$GR = imagecreatetruecolor($Breite_GR, $Hoehe_GR);
imagecopyresampled($GR, $altesBild, 0, 0, 0, 0, $Breite_GR, $Hoehe_GR, $breite, $hoehe);
imagegif($GR, "$pfad_GR", 80);
imagedestroy($altesBild);
}
// JPG
if ($size[2] == 2) {
$altesBild_TN = imagecreatefromjpeg($tmpname);
$altesBild_GR = imagecreatefromjpeg($tmpname);
$black = imagecolorallocate($altesBild_GR, 0, 0, 0);
$white = imagecolorallocate($altesBild_GR, 255, 255, 255);
$sy = $Hoehe_GR-700;
imagettftext($altesBild_GR, 3, 0, 0, $sy, $black, "c:/windows/fonts/verdanaf", "TEdst");
$TN = imagecreatetruecolor($Breite_TN, $Hoehe_TN);
imagecopyresampled($TN, $altesBild_TN, 0, 0, 0, 0, $Breite_TN, $Hoehe_TN, $breite, $hoehe);
imagejpeg($TN, "$pfad_TN", 50);
$GR = imagecreatetruecolor($Breite_GR, $Hoehe_GR);
imagecopyresampled($GR, $altesBild_GR, 0, 0, 0, 0, $Breite_GR, $Hoehe_GR, $breite, $hoehe);
imagejpeg($GR, "$pfad_GR", 80);
//imagedestroy($altesBild);
}
// PNG
if ($size[2] == 3) {
$altesBild = imagecreatefrompng("$tmpname");
$TN = imagecreatetruecolor($Breite_TN, $Hoehe_TN);
imagecopyresampled($TN, $altesBild, 0, 0, 0, 0, $Breite_TN, $Hoehe_TN, $breite, $hoehe);
imagepng($TN, "$pfad_TN", 50);
$GR = imagecreatetruecolor($Breite_GR, $Hoehe_GR);
imagecopyresampled($GR, $altesBild, 0, 0, 0, 0, $Breite_GR, $Hoehe_GR, $breite, $hoehe);
imagepng($GR, "$pfad_GR", 80);
imagedestroy($altesBild);
}
//Bildinformation in DB speichern
$sql = "INSERT INTO bilder SET
bildname='" . $neuername . "',
ID_seite='" . $id . "',
kategorie='" . $ordner . "' ";
$eintragen = mysql_query($sql);
$imgsize = ceil(filesize($_FILES['imagefile']['tmp_name'][$i]) /1024);
$upload_status[$i]['bildname'] = $_FILES['imagefile']['name'][$i];
$upload_status[$i]['hinweis'] = "Upload erfolgreich. Bildgröße beträgt " . $imgsize . " kB.";
$upload_status[$i]['neuername'] = $neuername;
if (!$eintragen) $upload_status[$i]['hinweis'].= "<br>Die Bildinformationen konnten nicht in der
DB gespeichert werden.";
} else {
$upload_status[$i]['bildname'] = $_FILES['imagefile']['name'][$i];
$error = '';
switch ($_FILES['imagefile']['error'][$i]) {
case UPLOAD_ERR_INI_SIZE:
$upload_status[$i]['hinweis'] = "Die hochgeladene Datei überschreitet das in der php.ini gesetzte Maximum!";
break;
case UPLOAD_ERR_FORM_SIZE:
$upload_status[$i]['hinweis'] = "Die hochgeladenen Datei überschreitet die in MAX_FILE_SIZE gesetzte Größe!";
break;
case UPLOAD_ERR_PARTIAL:
$upload_status[$i]['hinweis'] = "Die hochgeladene Datei wurde nur teilweise
übertragen!";
break;
case UPLOAD_ERR_NO_FILE:
$upload_status[$i]['hinweis'] = "Es wurde keine Datei hochgeladen!";
}
}
} else {
$upload_status[$i]['bildname'] = $_FILES['imagefile']['name'][$i];
$upload_status[$i]['hinweis'] = "Bild muss kleiner als " . $maxsize/1024 . " kB sein!";
}
} else {
$upload_status[$i]['bildname'] = $_FILES['imagefile']['name'][$i];
$upload_status[$i]['hinweis'] = "Die Datei muss vom Typ " . implode(', ', $extensions) . " sein!";
}
}
}
echo "<table align='center' width='80%' border='1' cellpadding='10' cellspacing='0'>
<tr>
<td colspan='3' align='center'><b>Statusreport</b></td>
</tr>
<tr>
<td align='center'><b>ausgewählte Datei</b></td>
<td align='center'><b>Status</b></td>
<td align='center'><b>hochgeladene Datei</b></td>
</tr>";
foreach($upload_status AS $key => $value) {
echo "<tr>";
echo "<td>" . $value['bildname'] . "</td>";
echo "<td>" . $value['hinweis'] . "</td>";
echo "<td>";
if (isset($value['neuername'])) echo $value['neuername'];
else echo " ";
echo "</td>";
echo "</tr>";
}
echo "</table>";
echo "<br />";
echo "<br />";
?>