so hab mal wieder ein wenig zeit gefunden
bild hochladen, wasserzeichen versehen und neu abspeichern geht.
resizen nicht, an welcher stelle sollte ich was und wie einfügen?
weitere frage, ist es möglich dass ich beim formluar einen ordner angeben kann, in welchem die bilder dann nach bearbeiten gespeichert werden
<?php
error_reporting(E_ALL);
// Funktionen definieren
// -----------------------------------------------
function checkUpload($myFILE, $file_extensions, $mime_types, $maxsize)
{
$errors = array();
// Uploadfehler prüfen
switch ($myFILE['error']){
case 1: $errors[] = "Bitte wählen Sie eine Datei aus, die <b>kleiner als ".ini_get('upload_max_filesize')."</b> ist.";
break;
case 2: $errors[] = "Bitte wählen Sie eine Datei aus, die <b>kleiner als ".$maxsize/(4096*4096)." MB</b> ist.";
break;
case 3: $errors[] = "Die Datei wurde nur teilweise hochgeladen.";
break;
case 4: $errors[] = "Es wurde keine Datei ausgewählt.";
return $errors;
break;
default : break;
}
// MIME-Type prüfen
if(count($mime_types)!=0 AND !in_array(strtolower($myFILE['type']), $mime_types)){
$fehler = "Falscher MIME-Type (".$myFILE['type'].").<br />".
"Erlaubte Typen sind:<br />\n";
foreach($mime_types as $type)
$fehler .= " - ".$type."\n<br />";
$errors[] = $fehler;
}
// Dateiendung prüfen
if($myFILE['name']=='' OR (count($file_extensions)!=0 AND !in_array(strtolower(getExtension($myFILE['name'])), $file_extensions))){
$fehler = "Falsche Dateiendung (".getExtension($myFILE['name']).").<br />".
"Erlaubte Endungen sind:<br />\n";
foreach($file_extensions as $extension)
$fehler .= " - ".$extension."\n<br />";
$errors[] = $fehler;
}
// Dateigröße prüfen
if($myFILE['size'] > $maxsize){
$errors[] = "Datei zu groß (".sprintf('%.2f',$myFILE['size']/(4096*4096))." MB).<br />".
"Erlaubte Größe: ".$maxsize/(4096*4096)." MB\n";
}
return $errors;
}
// gibt die Dateiendung einer Datei zurück
function getExtension ($filename)
{
if(strrpos($filename, '.'))
return substr($filename, strrpos($filename, '.')+1);
return false;
}
// erzeugt einen Zufallswert
function getRandomValue()
{
return substr(md5(rand(1, 9999)),0,8).substr(time(),-6);
}
// erzeugt einen neuen Dateinamen aus Zufallswert und
// Dateiendung
function renameFile ($filename)
{
return getRandomValue().".".getExtension($filename);
}
// Werte zur Dateiprüfung initialisieren
// -----------------------------------------------
$maxsize = 2*4096*4096;
$file_extensions = array('jpg', 'jpeg');
$mime_types = array('image/pjpeg', 'image/jpeg');
// Upload-Ordner definieren
// -----------------------------------------------
$ordner = "bilder/";
$font_path = "font/VERDANA.TTF";
// Anzahl der Datefelder
$anzahl_dateifelder = 5;
// Beginn des Skriptes
// -----------------------------------------------
echo "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\" \n".
"\"http://www.w3.org/TR/html4/strict.dtd\">\n";
echo "<html>\n";
echo "<head>\n";
echo " <title>multipler Datei-Upload</title>\n";
echo "</head>\n";
echo "<body>\n";
// Falls der Benutzer auf "Upload" gedrückt hat,
// werden die Dateien überprüft
if(isset($_POST['submit']) AND $_POST['submit']=='Upload'){
// jede Datei einzeln testen
for($i=0; $i<$anzahl_dateifelder; $i++){
$myFILE['name'] = $_FILES['Datei']['name'][$i];
$myFILE['type'] = $_FILES['Datei']['type'][$i];
$myFILE['tmp_name'] = $_FILES['Datei']['tmp_name'][$i];
$myFILE['error'] = $_FILES['Datei']['error'][$i];
$myFILE['size'] = $_FILES['Datei']['size'][$i];
// Fehlerarray erzeugen
$errors = array();
$errors = checkUpload($myFILE, $file_extensions, $mime_types, $maxsize);
if(count($errors)){
echo "<p>\n".
"Die ".($i+1).". Datei (".$myFILE['name'].") konnte nicht gespeichert werden.<br />\n";
foreach($errors as $error)
echo $error."<br />\n";
echo "</p>\n";
}
else {
do {
$neuer_name = renameFile($myFILE['name']);
} while(file_exists($ordner.$neuer_name));
if(@move_uploaded_file($myFILE['tmp_name'], $ordner.$neuer_name)){
echo "<p>\n".
"Die ".($i+1).". Datei (".$myFILE['name'].") wurde erfolgreich gespeichert.<br />\n".
"</p>\n";
//Bilder in Variablen Laden
$Grafik = ImageCreateFromJPEG($ordner.$neuer_name);
//Wasserzeichen erstellen
$im = imagecreate (165, 10);
//Hintergrundfarbe - Grau = 207,207,207
$black = ImageColorAllocate ($im, 255, 255, 255);
//Schriftfarbe - Schwarz = 0,0,0
$white = ImageColorAllocate ($im, 0, 0, 0);
//ImageTTFText ($im, 20, 0, 10, 20, $white, "VERDANA.TTF",
ImageTTFText ($im, 8, 0, 1, 9, $white, $font_path,
"copyright DeinName - 2010");
//Bearbeitung
ImageCopy($Grafik, $im,
imagesx($Grafik)-imagesx($im),
imagesy($Grafik)-imagesy($im), 0, 0,
imagesx($im),
imagesy($im));
//Bilder ausgabe
//imagejpeg($Grafik);
//Bild Speichern
imagejpeg($Grafik, "bilder/$neuer_name");
}
else{
echo "<p>\n".
"Die Die ".($i+1).". Datei (".$myFILE['name'].") konnte nicht gespeichert werden.<br />\n".
"Es ist ein Upload-Fehler aufgetreten.<br />\n".
"Bitte versuchen Sie es später erneut.<br />\n".
"<br />\n".
"Sollte der Upload noch immer nicht funktionieren, informieren Sie uns bitte per Email.<br />\n".
"<a href=\"".$_SERVER['PHP_SELF']."\">Zurück zum Upload-Formular</a>\n".
"</p>\n";
}
}
}
echo "<p>\n".
"<a href=\"".$_SERVER['PHP_SELF']."\">Zurück zum Upload-Formular</a>\n".
"</p>\n";
}
// Beim ersten Aufruf des Skriptes wird das
// Upload-Formular angezeigt
else{
echo "<h1>Laden Sie mehrere Bilder hoch!</h1>\n";
echo "<h2>Erlaubte Dateiendungen sind:</h2>\n";
foreach($file_extensions as $extension)
echo " ".$extension.", \n";
echo "<h2>Erlaubte Dateigröße:</h2>\n";
echo " - maximal ".($maxsize/(4096*4096))." MB\n<br />";
echo " <form ".
"action=\"".$_SERVER['PHP_SELF']."\" ".
"method=\"post\" ".
"enctype=\"multipart/form-data\">\n";
echo " <input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\" />\n";
for($i=0; $i<$anzahl_dateifelder; $i++){
echo " <label for=\"Datei\">".($i+1).". Datei auswählen</label>\n";
echo " <input type=\"file\" name=\"Datei[".$i."]\" id=\"Datei[".$i."]\" />\n";
echo " <br />\n";
}
echo " <input type=\"submit\" name=\"submit\" value=\"Upload\" />\n";
echo " </form>\n";
}
echo "</body>\n";
echo "</html>\n";
?>