Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
Hey Hennes!
Wie ich zu Beginn des Workshops geschrieben habe, entwickle ich den Inhalt der funktions.php nach und nach. Das hatte eigentlich den Hintergrund, dass ich die entsprechenden Funktionen erst an der Stelle erkläre, an der sie auch zum Einsatz kommen, so dass sich ein direkter Bezug herstellen lässt
Das ist meine funktions.php, die ich beim Testen des Workshops angelegt habe. Ich denke/hoffe mal, dass da alle Funktionen drin sind
PHP:
<?php
error_reporting(E_ALL);
function checkUpload($myFILE, $file_extensions, $mime_types, $maxsize, $maxwidth=PIC_WIDTH, $maxheight=PIC_HEIGHT)
{
$errors = array();
// Uploadfehler prüfen
switch ($myFILE['error']){
case 1: $errors[] = "Bitte wählen Sie eine Datei aus, die <b>kleiner als ".$maxsize/MB." MB</b> ist.";
break;
case 2: $errors[] = "Bitte wählen Sie eine Datei aus, die <b>kleiner als ".$maxsize/MB." 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(!in_array(strtolower($myFILE['type']), $mime_types)){
$fehler = "Falscher MIME-Type (".$myFILE['type'].").<br />".
"Erlaubt Typen sind:<br />\n";
foreach($mime_types as $type)
$fehler .= " - ".$type."\n<br />";
$errors[] = $fehler;
}
// Dateiendung prüfen
if($myFILE['name']=='' OR !in_array(strtolower(getExtension($myFILE['name'])), $file_extensions)){
$fehler = "Falsche Dateiendung(".getExtension($myFILE['name']).").<br />".
"Erlaubt Endungen sind:<br />\n";
foreach($file_extensions as $extension)
$fehler .= " - ".$extension."\n<br />";
$errors[] = $fehler;
}
// Bildmaße prüfen
if(@getimagesize($myFILE['tmp_name'])){
$size = getimagesize($myFILE['tmp_name']);
if ($size[0] > $maxwidth OR $size[1] > $maxheight)
$errors[] = "Bild zu groß (".$size[0]."x".$size[1]." Pixel).<br />".
"Erlaubte Größe: ".$maxwidth."x".$maxheight." Pixel\n";
}
// Dateigröße prüfen
elseif($myFILE['size'] > $maxsize){
$errors[] = "Datei zu groß (".$myFILE['size']/MB." MB).<br />".
"Erlaubte Größe: ".$maxsize/MB." MB\n";
}
return $errors;
}
// erzeugt ein Thumbnail
function createThumbnail($pic, $thumbdir, $thumbname, $newheight, $quality)
{
$size = getImageSize($pic);
// Größe berechnen
// kein resize, wenn die aktuelle Bildhöhe weniger als die neue Bildhöhe beträgt
if($size[1] < $newheight){
$width = $size[0];
$height = $size[1];
}
// Bild nach Höhe anpassen
else{
$height = $newheight;
$width = $newheight*$size[0]/$size[1];
}
// Typ ermittelm
if($size[2]==1) {
// Originalbild laden
$original=ImageCreateFromGIF($pic);
// leeres Thumbnail erstellen
$thumbnail=ImageCreateTrueColor($width,$height);
// Originalbild in das Thumbnail mit angepasster Größe kopieren
ImageCopyResized($thumbnail,$original,0,0,0,0,$width,$height,$size[0],$size[1]);
// Bild im temporären Thumbnail Ordner speichern
ImageGIF($thumbnail,$thumbdir.$thumbname);
}
elseif($size[2]==2) {
$original=ImageCreateFromJPEG($pic);
$thumbnail=ImageCreateTrueColor($width,$height);
ImageCopyResized($thumbnail,$original,0,0,0,0,$width,$height,$size[0],$size[1]);
ImageJPEG($thumbnail, $thumbdir.$thumbname, $quality);
}
elseif($size[2]==3) {
$original=ImageCreateFromPNG($pic);
$thumbnail=ImageCreateTrueColor($width,$height);
ImageCopyResized($thumbnail,$original,0,0,0,0,$width,$height,$size[0],$size[1]);
ImagePNG($thumbnail, $thumbdir.$thumbname);
}
else
return false;
return true;
}
function getExtension ($filename)
{
if(strrpos($filename, '.'))
return substr($filename, strrpos($filename, '.')+1);
return false;
}
function getRandomValue()
{
return substr(md5(rand(1, 9999)),0,8).substr(time(),-6);
}
function renameFile ($filename)
{
return getRandomValue().".".getExtension($filename);
}
function readDirectory($pfad)
{
if(substr($pfad,-1)!="/")
$pfad .= "/";
if(!is_dir($pfad))
return false;
$filesArr = array();
$ordner = dir($pfad);
while($datei = $ordner->read()) {
if($datei != "." AND $datei != "..") {
if(is_file($pfad.$datei))
$filesArr[] = $datei;
}
}
$ordner->close();
return $filesArr;
}
function moveWithoutStructure($source, $target)
{
if(substr($source,-1)!="/")
$source .= "/";
if(substr($target,-1)!="/")
$target .= "/";
if (!is_dir($source))
return false;
$ordner = dir($source);
while ($datei=$ordner->read()){
if ($datei != '.' AND $datei != '..' ){
$Entry = $source.$datei;
if (is_dir($Entry)){
moveWithoutStructure($Entry, $target);
rmdir($Entry);
}
elseif($source != $target){
copy($Entry, $target.$datei);
unlink($Entry);
}
}
}
$ordner->close();
return true;
}
?>
|