Strict Standards: Assigning the return value of new by reference is deprecated in /var/www/tp/wp-settings.php on line 229

Strict Standards: Assigning the return value of new by reference is deprecated in /var/www/tp/wp-settings.php on line 231

Strict Standards: Assigning the return value of new by reference is deprecated in /var/www/tp/wp-settings.php on line 232

Strict Standards: Assigning the return value of new by reference is deprecated in /var/www/tp/wp-settings.php on line 249
webcreate IT SOLUTIONS Blog » Fotoupload mit Thumbnail Generierung

Fotoupload mit Thumbnail Generierung

Mit dem folgenden Script kann man JPG Fotos hochladen und automatisch wird ein Thumbnail erzeugt.
Bei Bedarf kann man dem Thumbnail einen Rahmen hinzufügen. Durch Verwendung des Rahmens, wird immer ein quadratisches Thumbnail erzeugt, wobei die Angabe der Rahmendicke für jede Seite gilt und sich auf die längste Kante des Thumbnails bezieht.
Die Farbe des Rahmens wird mittels RGB Werte definiert.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?php
/**
* uploader
*
* Image upload function with thumbnail generation
*
* @return string Information about the generation process
* @param string $fotofile Temporary name of the image file
* @param string $fotofile_name Name of the image file
*/
function uploader($fotofile,$fotofile_name){
 
    //*******************************************
    // Bitte hier die Einstellungen vornehmen
    //*******************************************
 
    // Rahmen setzen? true = ja  ||  false = nein
    $rahmen_aktiv = true;
 
    // Angabe der Rahmendicke in px (an der längsten Kante)
    $rahmen = '10';
 
    // Angabe der Rahmenfarbe (in RGB-Werten!!)
    $farbe_r = '128';
    $farbe_g = '0';
    $farbe_b = '0';
 
    // Angaben der Thumbnailgrößen in px    
    // Querformat:
    $thumb_max_x = '120';
    // Hochformat:
    $thumb_max_y = '120';
 
    // Zielordner. Wenn hier nichts angegene ist, dann ist der Speicherort des Scriptes der Zielordner.
    // Können auch identisch sein, da die Dateinamen eh einen entsprechenden Zusatz erhalten!
    // Zielordner für die Originalfotos (Ordner muss CHMOD 666 haben !!)
    $zielorg = "bilder/"; 
    // Zielordner für die Thumbnails (Ordner muss CHMOD 666 haben !!)
    $zielthm = "bilder/thm/"; 
 
    //*******************************************
    // ENDE DER EDITIERUNG
    //*******************************************
 
 
    // Angabe Dateiendung
    $datei_ende = ".jpg"; 
 
    // Org.-Foto speichern
    $zielorg .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_org" . $datei_ende;
    if(file_exists($zielorg)){
        return $upload_log = "Die Datei $fotofile_name exsitiert schon auf dem Server!";
 
    }
    if(!move_uploaded_file($fotofile, $zielorg)){
        return $upload_log = "Ein Fehler beim Kopieren der Datei $fotofile_name ist aufgetreten!";
    }
 
    // Angaben für das Thumbnail
    $zielthm .= substr($fotofile_name,0,strrpos($fotofile_name,"."))."_thm" . $datei_ende;
 
    $large_img = $zielorg;
    $large_img = ImageCreateFromJPEG($large_img);
    $size = getimagesize($zielorg);
    $width_max = $size[0];
    $height_max = $size[1];
    $test_max = $width_max/$height_max;
    if($test_max > 1){
        if($width_max > $thumb_max_x){
            $width_max = $thumb_max_x;
            $height_max = $thumb_max_x / $test_max;
        }
            $rahmen_aktiv== true ? $image_max = imagecreatetruecolor($width_max+($rahmen*2),$width_max+($rahmen*2)) :$image_max = imagecreatetruecolor($width_max,$height_max);
            $rand1 = $rahmen;
            $rand2 = (($width_max+($rahmen*2))/2)-($height_max/2);
    }else{
        if($height_max > $thumb_max_y){
            $height_max = $thumb_max_y;
            $width_max = $thumb_max_y * $test_max;
        }
            $rahmen_aktiv== true ? $image_max = imagecreatetruecolor($height_max+($rahmen*2),$height_max+($rahmen*2)) : $image_max = imagecreatetruecolor($width_max,$height_max);
            $rand1 = (($height_max+($rahmen*2))/2)-($width_max/2);
            $rand2 = $rahmen;
    }
    $bsrc = imagesx($large_img);
    $hsrc = imagesy($large_img);
    if($rahmen_aktiv == true){
        $farbe1 = imagecolorallocate($image_max,$farbe_r,$farbe_g,$farbe_b);
        imagefilltoborder($image_max,0,0,$farbe1,$farbe1);
    }
    $rahmen_aktiv== true ? ImageCopyResized($image_max,$large_img,$rand1,$rand2,0,0,$width_max,$height_max,$bsrc,$hsrc) : ImageCopyResized($image_max,$large_img,0,0,0,0,$width_max,$height_max,$bsrc,$hsrc);
    ImageJPEG($image_max,$zielthm,100);
 
    return $upload_log = "Der Upload der Datei $fotofile_name ist erfolgreich abgeschlossen worden!";
}
 
if(!$_GET['action']){
?>
<form name="formular" enctype="multipart/form-data" action="<?=$_SERVER[PHP_SELF];?>?action=upload"" method="post">
Neues Foto hochladen:&nbsp;&nbsp;<input name="foto" type="file" size="50"><input name="Submit" type="submit" value="eintragen">
</form>
<?
}
if($_GET['action']==upload){
    // So wird die Upload-Funktion aufgerufen. Die Var. kommen über POST vom Formular
    $upload = uploader($_FILES['foto']['tmp_name'],$_FILES['foto']['name']);
    echo $upload."<br><a href=\"".$_SERVER['PHP_SELF']."\">zur&uuml;ck</a>";
}
?>

No comments yet.

Write a comment: