Ich habe für meine Partypage ein Script Programmiert, das die Fotografen nicht alle Bilder einzeln Hochladen müssen. Nun ist dieses Script leider etwas lastig und bei meinem Server kommt es so entweder zu einem Timeout oder ein Fatal Error weil der Arbeitsspeicher überschritten wurde. Nun wollte ich Fragen ob man dies etwas einfacher gestallten kann, das es vieleicht nicht so viel Last braucht?
Das scipt macht Folgendes:
Ordner erstellen
Bilder auslesen, einzeln in DB schreiben
Verkleiner
Thumb erstellen
Das scipt macht Folgendes:
Ordner erstellen
Bilder auslesen, einzeln in DB schreiben
Verkleiner
Thumb erstellen
PHP:
<?php
if ($_SESSION['user_status'] == 2)
{
include("access/connect.php") ;
$pfad_of_pic = $_POST["pfad"] ;
$event = $_GET["event"] ;
$uploaddir = "fotos/".$pfad_of_pic ;
$pfad_of_pic = $uploaddir ;
$dir = "img/event/".$event."/pic/" ;
$dir1 = "img/event/".$event."/thumb/" ;
$ip = getenv("REMOTE_ADDR");
mkdir($dir,0777,TRUE);
mkdir($dir1,0777,TRUE);
$handle = opendir($pfad_of_pic);
while ($file = readdir ($handle)) {
if($file != "." && $file != "..") {
$filename = $file ;
// Bilder Verkleinern , Thumbs
if($filename)
{
$sql = "SELECT idv FROM eventpic WHERE pic like '$dir$filename'";
$result = mysql_query ($sql);
if (mysql_num_rows ($result) == 0)
{
$fileinfos = getimagesize("$uploaddir/$filename");
$type = $fileinfos[2]; // 2 = JPG
if ($type != 2)
{
unlink("$uploaddir/$filename"); // Löschen
echo "Fehler! Das Bild ist kein Bild des Types JPG! " ; exit ;
}
$size = getimagesize("$uploaddir/$filename");
$width = $size[0];
$height = $size[1];
if($width > 510)
{
$width_tn = 510;
$height_tn = intval($height * $width_tn / $width);
$picture = ImageCreateFromJPEG("$uploaddir/$filename");
$picture_tn = ImageCreateTrueColor($width_tn,$height_tn);
ImageCopyResampled($picture_tn,$picture,0,0,0,0,$width_tn,$height_tn,$width,$height);
ImageJPEG($picture_tn, $dir.$filename,95);
} else
{
copy("$uploaddir/$filename","$dir$filename") ;
}
$size1 = getimagesize("$uploaddir/$filename");
$width1 = $size1[0];
$height1 = $size1[1];
$width_tn1 = 170;
$height_tn1 = intval($height1 * $width_tn1 / $width1);
$picture1 = ImageCreateFromJPEG("$uploaddir/$filename");
$picture_tn1 = ImageCreateTrueColor($width_tn1,$height_tn1);
ImageCopyResampled($picture_tn1,$picture1,0,0,0,0,$width_tn1,$height_tn1,$width1,$height1);
ImageJPEG($picture_tn1,"$dir1$filename",95);
$sql = "INSERT INTO eventpic (pic, thumb ,event ,ip) VALUES".
"('$dir$filename', '$dir1$filename', '$event', '$ip')";
mysql_query ($sql);
echo "Eingetragen: Bild: $dir$filename Thumb: $dir1$filename<br>" ;
}}
} else {
echo "Fehler beim eintragen von $filename<br>" ;
}
}
}
?>