Zur Navigation

Bilderupload, resizen und mit Wasserzeichen versehen [4]

... 1 Monat später ...

31 tobi

hallo,

nach über einem monat komm ich wieder mal dazu weiter zu testen.

ich habe nun versucht einen möglichen ordner zu erstellen, was mit allerdings 2 fehlermeldungen ausgibt.

Notice: Undefined index: ordner on line 77

Warning: mkdir() [function.mkdir]: Permission denied on line 80

<?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/";
	
	$ordner = $_POST['ordner'];
    $directory = "/bilder/$ordner";

    if( mkdir ("$directory", 0777))
    {
     echo "Verzeichnis erstellt!";
    } 
//	mkdir("bilder/".$_POST['ordner'],0777)
	
   $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";
		// Unterordner für Bilder	 
		echo "<label>Ordner: <input type=\"text\" name=\"ordner\" value=\"".$ordner."\" /></label>";	 
		echo "  <br />\n";
		//Felder für Bilder
        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";
?>

mit einem anderen script klappt das mit dem ordner erstellen und sogar auswählen eines vorhanden ordners (leider mit grafikwasserzeichen und nur einem bild)

<?php
error_reporting(E_ALL);
session_start();

$maxkb = 7194304; // Maximale Dateigröße (enthält alle Daten einzuschränken)
$watermerkurl = "hover.png"; // Wasserzeichen Bild muss ein png

?>

<html>
<head>
<script language="javascript">
function createmap(id)
{
    if(document.getElementById("weergeefcreate"+id).style.display=='none')
    {
        document.getElementById("weergeefcreate"+id).style.display = '';
        document.getElementById("verbergcreate"+id).style.display = 'none';
        document.getElementById("createetext"+id).style.display = 'none';
    }
    else
    {
        document.getElementById("weergeefcreate"+id).style.display = 'none';
        document.getElementById("verbergcreate"+id).style.display = '';
        document.getElementById("createetext"+id).style.display = '';
    }
}
</script>
</head>
<body>
<h3 align="center">Uploaden</h3>
<?php
if(isset($_POST['map']))
{
    if($_POST['map'] == 'this')
    {
        $path = './';
    }
    else
    {
        $path = $_POST['map'].'/'; // Ordner hochgeladen dann muß mit Schrägstrich Ende
    }
}
else
{
    $path = './';
}

if(isset($_POST['resize_breedte']))
{
    $user_breedte = $_POST['resize_breedte']; // Breite des neuen Bildes
}

//--- prüfen, ob die Datei kleiner oder so groß wie die angegebene Größe und ob das Foto hochgeladen wurde und die Ausweitung von IT. jpg oder. jpeg!
if(isset($_POST['submit']) && $_FILES['userfile']['size'] <= $maxkb && 
   !file_exists($path . $_FILES['userfile']['name']) && 
   $_FILES['userfile']['size'] && 
   is_uploaded_file($_FILES['userfile']['tmp_name']) && 
   (strtolower(substr($_FILES['userfile']['name'], -3)) == "jpg" || strtolower(substr($_FILES['userfile']['name'], -4)) == "jpeg"))
    {
    
    //--- Bild hochladen $path
    move_uploaded_file($_FILES['userfile']['tmp_name'], $path . $_FILES['userfile']['name']);

    //--- transparentes Wasserzeichen
    $watermerk = imagecreatefrompng($watermerkurl);
    $watermerk_width = imagesx($watermerk);
    $watermerk_height = imagesy($watermerk);
    imagecreatetruecolor($watermerk_width, $watermerk_height);

    //--- Identifizieren Sie die Eigenschaften des Bildes
    list($breedte, $hoogte, $image_type) = getimagesize($path . $_FILES['userfile']['name']);
    
    //--- das Verhältnis zwischen Höhe und Breite
    $image_ratio = $hoogte / $breedte;
    
    //--- auf der Grundlage der raio die neue Höhe
    if($image_ratio > 1){
        $rs_breedte = $user_breedte;
        $rs_hoogte = $user_breedte * $image_ratio;
    }
    else{
        $rs_hoogte = $user_breedte;
        $rs_breedte = $user_breedte / $image_ratio;
    }
    //--- lernen, Bild im Speicher die Größe
    $resize = imagecreatetruecolor($rs_breedte, $rs_hoogte);
    //--- Quelle ändern in
    $source = imagecreatefromjpeg($path . $_FILES['userfile']['name']);
    //--- Photo Resize
    imagecopyresized($resize, $source, 0, 0, 0, 0, $rs_breedte, $rs_hoogte, $breedte, $hoogte);
    // Foto Lagerung
    imagejpeg($resize, $path . $_FILES['userfile']['name']);
    
    $image = imagecreatefromjpeg($path . $_FILES['userfile']['name']);
    $size = getimagesize($path . $_FILES['userfile']['name']);

    if(!isset($_POST['watermerk']) || $_POST['watermerk'] != 'nee')
    {
    //--- definieren Sie die Koordinaten des Wasserzeichens - diesem Beispiel ist links
    /*
    bijv: geuploade plaatje: 180 x 130
    watermerk groote: 50 x 16

    berekening voor coordinaten 'x' as:
    180 (breedte geuploade foto) - 50 (breedte watermerk) - 5 (ruimte rechts) = 125 pixels vanaf links

    berekening voor 'y' as:
    130 (hoogte geuploade foto) - 16 (hoogte watermerk) - 5 (ruimte onder) = 109 pixels vanaf boven
    */

    //--- dit is voor rechts boven
    $xas = $size[0] - $watermerk_width - 5;
    $yas = 5;

    //--- overschrijf het 'geuploade bestand' en voeg watermerk toe
    imagecopymerge($image, $watermerk, $xas, $yas, 0, 0, $watermerk_width, $watermerk_height, 100);

    //--- upload image
    imagejpeg($image, $path . $_FILES['userfile']['name']); // max. kwaliteit

    imagedestroy($image);
    imagedestroy($watermerk);
    
    }
        
    $_SESSION['image'] = $path.$_FILES['userfile']['name'];
    
    echo '<meta http-equiv="refresh" content="2;url=?uploaded=ja">';
    echo 'Erfolgreich hochgeladen wurde, und warten a.u.b.';
}
elseif(isset($_GET['uploaded']) && isset($_SESSION['image']))
{
    echo 'Das Bild wird hochgeladen. Sie können die Bilder anzeigen, indem Sie auf den folgenden Link:<br />';
    echo '<a href="' . $_SESSION['image'] . '">' . $_SESSION['image'] . '</a><p>';
    echo '<img src="' . $_SESSION['image'] . '"><p>';
    echo '<a href="' . $_SERVER['PHP_SELF'] . '">ein Foto hochladen</a>';
}
else
{
    //--- errors
    if (isset($_POST['submit']))
    {
        if (file_exists($path . $_FILES['userfile']['name']) && $_FILES['userfile']['name'])
        {
            echo '<b>Error! Die Datei existiert bereits, benennen Sie das Bild und es erneut versuchen.</b><br><br>';
        }
        elseif ($_FILES['userfile']['size'] > $maxkb)
        {
            echo '<b>Error! Die Datei ist größer als " . $maxkb . "bytes. Reduzieren Sie das Bild und versuchen Sie es erneut</b><br><br>';
        }
        elseif (strtolower(substr($_FILES['userfile']['name'], -3)) != "jpg" && strtolower(substr($_FILES['userfile']['name'], -4)) != "jpeg")
        {
            echo '<b>Error! Das Foto hat einen falschen Dateinamen. Nur hochgeladenen Dateien mit A. JPG oder. Jpeg als a.</b><br><br>';
        }
        else
        {
            echo '<b>Error! Das Bild ist nicht hochgeladen oder es gibt kein Bild hochgeladen. Bitte versuchen Sie es erneut.</b><br><br>';
        }
    }
    else
    {
        if(isset($_POST['creatdir'])){
            if(!empty($_POST['mapname']))
            {
                mkdir("./".$_POST['mapname'], 0755);
                echo 'Ordner '.$_POST['mapname'].' wird erstellt<br><br>';
            }
            else
            {
                echo '<b>Die angegebene Datei ist leer</b><br><br>';
            }
        }
        else{
            echo '<div id="createetext1" style="display:none; position:absolute; width: 350px; background-color:#999999; z-index: 3;">
                    <h4 align="center">Erstellen eines neuen Ordners</h4>
                    <form method="post" action="' . $_SERVER['PHP_SELF'] . '">
                        Neuer Ordner Name:<input type="text" name="mapname" /><br /><br>
                        <input type="submit" name="creatdir" value="Ordner erstellen" />
                        <div id="verbergcreate1" style="display:none;">
                        <input name="createe_text" type="button" value="cancel" onclick="createmap(1)" />
                           </div></div>

                       </form>
                </div>';
        }
        if(isset($_POST['userfile']))
        {
            $file = $_POST['userfile'];
        }
        else
        {
            $file = " ";
        }
        
        echo '<form method="post" action="' . $_SERVER['PHP_SELF'] . '" enctype="multipart/form-data">';

        $handle = opendir($path);
        
        echo 'Wählen Sie einen Ordner: <select name="map" style="z-index: 1;">';
        echo '<option value="this">Ordner wählen</option>';
        
        while (false!==($file = readdir($handle)))
        {
            if ($file != "." && $file != "..")
            {
                
                if (is_dir($file))
                {
                    echo '<option value="'.$file.'">'.$file.'</option>';
                }
            }
        }
        
        echo '</select>
              <div id="weergeefcreate1" onclick="createmap(1)" style="cursor:pointer; float: left;">
                  <i>Oder klicken Sie hier, und erstellen Sie einen neuen Ordner</i>
              </div>
              <br>
              <br>
              <br>';

        
        closedir($handle);
        
        //--- formulier met enctype multipart/form-data ivm de file upload
        echo '<input type="hidden" name="MAX_FILE_SIZE" value="' . $maxkb . '" />
                Neue Breite: <input name="resize_breedte" type="text" value="500" size="4" maxlength="4">px<br /><br>
                Datei: <input type="file" name="userfile" value="' . $file . '" /><br /><br>
                <input type="checkbox" name="watermerk" value="nee" />Kein Wasserzeichen<br /><br />
                <input type="submit" name="submit" value="uploaden" onclick="';
        echo "document.getElementById('bezig').style.visibility='visible'";
        echo '" />
            </form><br><br><div id="bezig" style="visibility: hidden;">Hochladen<img src="uploading.gif"></div>';
    }
}
?> 
</body>
</html> 

28.03.2010 14:24

32 tobi

ich woltle gerade ein wenig editieren, geht dass seit neuestem nicht mehr?
ich habe hier nur einen Zitat-Button

kommando zurück, mein oben geposteter code ist im moment nicht mehr aktuell, im moment läuft das script, aber evtl. tauchen ja noch fehler auf

edit: also bei dem post hier, gab es wieder einen ändern button, sehr komisch

28.03.2010 17:46 | geändert: 28.03.2010 17:48

33 Jörg Kruse

Der "ändern" Button verschwindet nach einer Stunde. Es gibt leider Leute, die die Editierfunktion missbrauchen (z.B. nachträglich Spamlinks eintragen), so dass ich die Editier-Zeit auf eine Stunde heruntergesetzt habe.

28.03.2010 18:55 | geändert: 28.03.2010 18:56

34 tobi

Zitat von Jörg
Der "ändern" Button verschwindet nach einer Stunde. Es gibt leider Leute, die die Editierfunktion missbrauchen (z.B. nachträglich Spamlinks eintragen), so dass ich die Editier-Zeit auf eine Stunde heruntergesetzt habe.

ok, dann weiß ich bescheid.
nächstes mal innerhalb einer stunde editieren, sofern nötig

<?php
    error_reporting(E_ALL);
	require('img_resize.class.php');
	// Resize-Optionen
	$resize = true;
	$max_width = 700;
	$max_height = 700;	
	
    // 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
    // -----------------------------------------------
   
   $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'){
	
		if(isset($_POST['ordner']) AND trim($_POST['ordner']) != "") {
			$directory = "./bilder/".$_POST['ordner'];
			if(mkdir ($directory, 0777)) {
			 echo "Verzeichnis <b>".$_POST['ordner']."</b> erstellt!";
			}
		} else {
			$directory = "./bilder";
		}

        // 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($directory."/".$neuer_name));               
                if(@move_uploaded_file($myFILE['tmp_name'], $directory."/".$neuer_name)){
                     echo "<p>\n".
                          "Die ".($i+1).". Datei (".$myFILE['name'].") wurde erfolgreich gespeichert.<br />\n".
                          "</p>\n";
                   
                     //Bilder in Variablen Laden
                     $Grafik = ImageCreateFromJPEG($directory."/".$neuer_name);


                     //Wasserzeichen erstellen
                     $im = imagecreate (910, 100);
                     //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, 40, 0, 10, 50, $white, $font_path,
                     "© ttc.de - 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, $directory."/".$neuer_name);
					 
					 //Bild verkleinern
					 if($resize) {
						$img = getimagesize($directory."/".$neuer_name);
						$obj = new img_opt();
						if($img[0] > $max_width) {
							$obj->max_width($max_width);
						} else {
							$obj->max_width($img[0]);
						}
						if($img[1] > $max_height) {
							$obj->max_height($max_width);
						} else {
							$obj->max_height($img[0]);
						}
						$obj->image_path($directory."/".$neuer_name);
						$obj->image_resize();
					}
                }
                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";
      // Unterordner für Bilder   
      echo "<label>Ordner: <input type=\"text\" name=\"ordner\" /></label>";   
      echo "  <br />\n";
      //Felder für Bilder
        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";
?>

nun hat sich doch noch eine frage aufgetan.

mein textwasserzeichen hat im moment einen weißen hintergrund, ich möchte gar keinen hintergrund haben, man soll ja dass bild sehen, ich hab ein wenig ausprobiert, aber anscheinend an der falschen stelle.

und im moment wird, wenn ein bild erfolgreich hochgeladen wurde, angezeigt z.b. : Die 1. Datei (0167845411001.jpg) wurde erfolgreich gespeichert.
ist doch sicher auch möglich, unter die zeilen, dann bild mit auszugeben oder?

28.03.2010 19:38

35 Jörg Kruse

mein textwasserzeichen hat im moment einen weißen hintergrund, ich möchte gar keinen hintergrund haben, man soll ja dass bild sehen, ich hab ein wenig ausprobiert, aber anscheinend an der falschen stelle.

Du erstellst hier eine neue Grafik:
                     //Wasserzeichen erstellen
                     $im = imagecreate (910, 100);

Stattdessen die hochgeladene Grafik bearbeiten

und im moment wird, wenn ein bild erfolgreich hochgeladen wurde, angezeigt z.b. : Die 1. Datei (0167845411001.jpg) wurde erfolgreich gespeichert.
ist doch sicher auch möglich, unter die zeilen, dann bild mit auszugeben oder?

Ja, ein img Tag mit der betreffenden URL im src Attribut drunter schreiben

28.03.2010 21:56

36 tobi

Zitat von Jörg
mein textwasserzeichen hat im moment einen weißen hintergrund, ich möchte gar keinen hintergrund haben, man soll ja dass bild sehen, ich hab ein wenig ausprobiert, aber anscheinend an der falschen stelle.

Du erstellst hier eine neue Grafik:
                     //Wasserzeichen erstellen
                     $im = imagecreate (910, 100);

Stattdessen die hochgeladene Grafik bearbeiten

dumme frage und wie bearbeite ich die hochgeladenen bilder?

28.03.2010 23:52 | geändert: 28.03.2010 23:52

37 Jörg Kruse

Mit imagecreatefromgif() kannst du aus dem hochgeladenen Gif eine Ressource erzeugen, die du anschließend mit imagettftext() weiterverarbeiten kannst

$im = imagecreatefromgif('hochgeladenes-bild.gif');

29.03.2010 15:07

38 tobi

ich lade ja nur .jpg hoch

muß es dann nicht imagecreatefromjpeg heißen oder?

einen genauen namen von dem bild habe ich ja nicht mußte das dann nicht in den klammern so aussehen?
$im = imagecreatefromjpeg ('.$myFILE['name'].');

bekomme nämlicheine fehlermeldung:
Parse error: syntax error, unexpected T_STRING

29.03.2010 17:30 | geändert: 29.03.2010 17:31

39 Jörg Kruse

Die Hochkommata und Punkte sind überflüssig:

$im = imagecreatefromjpeg ($myFILE['name']);

29.03.2010 17:53

40 tobi

es "fehlert" grad so weiter

Die 1. Datei (P1000338.JPG) wurde erfolgreich gespeichert.

Warning: imagecreatefromjpeg(P1000338.JPG) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in on line 143

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in on line 147

Warning: imagecolorallocate(): supplied argument is not a valid Image resource in on line 149

Warning: imagettftext() expects parameter 1 to be resource, boolean given in on line 152

Warning: imagesx(): supplied argument is not a valid Image resource in on line 156

Warning: imagesy(): supplied argument is not a valid Image resource in on line 157

Warning: imagesx(): supplied argument is not a valid Image resource in on line 158

Warning: imagesy(): supplied argument is not a valid Image resource in on line 159

Warning: imagecopy(): supplied argument is not a valid Image resource in on line 159

EDIT: mit
$im = imagecreatefromjpeg($directory."/".$neuer_name);
wird nun keine fehlermeldung ausgegeben und das textwasserzeichen erscheint wieder, allerdingsin der linken oberen ecke - mal schaun wie die jetzt nach unten rechts wandert und anstatt in schwarzer schrift, weiß dargestellt wird

EDIT 2:
//Wasserzeichen erstellen
$im = imagecreatefromjpeg($directory."/".$neuer_name);
//Hintergrundfarbe - Grau = 207,207,207
$black = ImageColorAllocate ($im, 255, 255, 255);
//Schriftfarbe - Schwarz = 0,0,0 - Weiß = 255,255,255
$white = ImageColorAllocate ($im, 255, 255, 255);
//ImageTTFText ($im, 20, 0, 10, 20, $white, "VERDANA.TTF",
 ImageTTFText ($im, 50, 0, 1400, 1850, $white, $font_path,
"© ttc-.de - 2010");

so nun passts, jedenfalls das mit dem wasserzeichen - danke für deine hilfe
das mit der ausgabe, damit man gleich dass bild sehen kann, danach muß ich noch schauen

29.03.2010 18:38 | geändert: 29.03.2010 19:21

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]