Problem beim Mehrfachupload von Bildern

Psychokiller

Mitglied
Hallo,

ich habe mir eine kleine Galerie gebastelt bei der ich 5 Bilder gleichzeitig hochladen kann.

Jetzt hab ich damit aber ein Problem und zwar funktioniert es, aber manschmal auch wieder nicht.

Der Ablauf ist wie folgt:

- Bilder werden hochgeladen
- Es wird geprüft wieviele Bilder hochgeladen werden
- Bilder werden durch eine for schleife einzeln bearbeitet in 3 Schritten
- Original Bild bekommt ein Wasserzeichen
- eine mittelgroße Kopie wird erstellt
- eine kleine Kopie wird erstellt

Danach kommt eine Ausgabe das es erfolgreich war oder nicht dann fängt es von vorne an halt so oft bis alle Bilder abgearbeitet sind.

Ich bekomme immer die Meldung das alle Bilder erfolgreich Hochgeladen und Bearbeitet wurden. Jedoch fehlen manschmal einfach Bilder sie existieren einfach nicht mehr obwohl der Datenbank eintrag usw. ist alles vorhanden nur das Bild fehlt.

Das komische ist das es jedoch auch versuche gibt in denen er alle Bilder problemlos hochlädt.

Ein versuch nach jedem bearbeiteten Bild ein sleep(5) zu machen hat auch nicht geholfen.

Hoffe jemand kann mir evtl. helfen und mir sagen woran es liegen kann.


Mit freundlichen Grüßen

Psycho
 
Hi,

ohne Deinen Code wird Dir niemand helfen können.
Wie prüfst Du denn, wieviele Bilder hochgeladen wurden? Ist error_reporting voll aufgedreht?

LG
 
Damit prüfe ich die Anzahl der wirklich hochgeladenen Bilder:

PHP:
<?php 
if (isset($_FILES['bild']))
		{
		$bilder=count($_FILES['bild']);
		$bild_anzahl=0;
		for ($i=0; $i<$bilder; $i++)
			{
			if ($_FILES['bild']['error'][$i]!=4)
				{
				$bild_anzahl++;
				}
			}
		}
?>

Aber hier mal der entscheidene Code entschuldigt bitte wenn es durcheinander aussieht XD

PHP:
<?php
$maxsave=10485760;
$minwidth=10;
$minheight=10;
$maxpics=100;
$maxsize=614400;
$usepics=0;
$usesave=0;
$filetyp=0;
$error=0;


$info=$_POST['info'];
$catid=$_POST['kategorie'];

$sql2="SELECT * FROM galerie_pics WHERE uid='$myid'";
$data2=mysql_query($sql2, $db);
while ($us=mysql_fetch_object($data2))
	{
	$usepics++;
	$usesave=$usesave + $us->groesse;
	}
	
if ($_REQUEST['upload'])
	{
	if (isset($_FILES['bild']))
		{
		$bilder=count($_FILES['bild']);
		$bild_anzahl=0;
		for ($i=0; $i<$bilder; $i++)
			{
			if ($_FILES['bild']['error'][$i]!=4)
				{
				$bild_anzahl++;
				}
			}
		}
	$sql2="SELECT * FROM galerie_cat WHERE id='$catid'";
	$data2=mysql_query($sql2, $db);
	while ($parent=mysql_fetch_object($data2))
		{
		$parentcat=$parent->parentlist;
		$schreiben=$parent->schreiben;
		$lesen=$parent->lesen;
		}
	if ($access<$schreiben)
		{
		$error++;
		$msg="- Sie haben keine Rechte in diese Kategorie Bilder hochzuladen.<br />";
		}
	if (empty($catid))
		{
		$error++;
		$msg="$msg- Keine Kategorie ausgewählt.<br />";
		}
	for ($i=0; $i<$bild_anzahl; $i++)
		{
		$tempname="temp_".$time.$i;
		$pic_name = $_FILES['bild']['name'][$i];
		$pic_type = $_FILES['bild']['type'][$i];
		$pic_size = $_FILES['bild']['size'][$i];
		$pic_tmp  = $_FILES['bild']['tmp_name'][$i];
		$pic_err  = $_FILES['bild']['error'][$i];
		
		$sql3="SELECT * FROM galerie_pics WHERE uid='$myid'";
		$data3=mysql_query($sql3, $db);
		while ($us=mysql_fetch_object($data3))
			{
			$usesave=0;
			$usepics=0;
			$usepics++;
			$usesave=$usesave + $us->groesse;
			}
		
		if ($pic_type == "image/jpeg" ) { $filetyp++; $type="jpg";}
		if ($pic_type == "image/gif") { $filetyp++; $type="gif";}
		if ($pic_type == "image/png") { $filetyp++; $type="png";}
		
		if (empty($filetyp))
			{
			$error++;
			$msg="$msg- Die Datei \"$pic_name\" ist keine jpeg, gif oder png.<br />";
			}
		if ($pic_size>$maxsize)
			{
			$error++;
			$maxsize=$maxsize / 1024;
			$msg="$msg - Die Datei \"$pic_name\" ist größer als $maxsize Kb.<br />";
			}
		if ($maxsave<=$usesave)
			{
			$error++;
			$msg="$msg - Ihr verfügbarer Speicher ist aufgebraucht. <br />";
			}
		elseif (($maxsave + $pic_size)<=$usesave)
			{
			$error++;
			$msg="$msg - Ihr verfügbarer Speicher reicht nicht um \"$pic_name\" hochzuladen. <br />";
			}
		if ($maxpics<=$usepics)
			{
			$error++;
			$msg="$msg - Die maximale Anzahl an Bildern ist erreicht. <br />";
			}
		switch ($pic_err) 
			{
			case 1:
				$error++;
				$msg="$msg - Die Datei überschreitet den maximal Upload des Servers.<br />";
				break;
			case 2:
				$error++;
				$msg="$msg - Die Datei überschreitet den maximal Upload des Scripts.<br />";
				break;
			case 3:
				$error++;
				$msg="$msg - Die Datei wurde nur teilweise hochgeladen.<br />";
				break;
			case 4:
				$error++;
				$msg="$msg - Es wurde keine Datei hochgeladen.<br />";
				break;
			}
		if (empty($error))
			{
			$size=getimagesize($pic_tmp);
			if (move_uploaded_file ($pic_tmp, "ONLINE/galerie/bilder/$tempname.$type"))
				{
				chmod("ONLINE/galerie/bilder/$tempname.$type", 0777);
				$sql="INSERT INTO galerie_pics (uid, catid, parentcat, breite, hoehe, groesse, views, typ, datum, info, gespeert, access) VALUES ('$myid', '$catid', '$parentcat', '$size[0]', '$size[1]', '$pic_size', '0', '$type', '$time', '$info', '0', '$lesen')";
				$sqlaction=mysql_query($sql, $db);
				$sql2="SELECT * FROM galerie_pics WHERE name='$name' AND datum='$time'";
				$data2=mysql_query($sql2, $db) or die(mysql_error());
				$rename=mysql_fetch_object($data2);
				$renameid="$rename->id";
				$breite=$size[0];
				$hoehe=$size[1];
				if ($breite>1024 AND $hoehe>768 AND $breite>$hoehe)
					{
					$nwidth_big=1024;
					$nheight_big=$hoehe * $nwidth_big / $breite;
					$nheight_big=round($nheight_big);
					}
					elseif ($breite>768 AND $hoehe>1024 AND $breite<$hoehe)
					{
					$nheight_big=1024;
					$nwidth_big=$breite / $hoehe * $nheight_big;
					$nwidth_big=round($nwidth_big);
					}
					else
					{
					$nheight_big=$hoehe;
					$nwidth_big=$breite;
					}
				rename("ONLINE/galerie/bilder/$tempname.$type", "ONLINE/galerie/bilder/$renameid.$type");
				// Wasserzeichen hinzufügen
				if ($type=="jpg")
					{
					$wasserzeichen=ImageCreateFromPNG("ONLINE/galerie/bilder/watermark.png");
					$color = imagecolorallocate($wasserzeichen, 255, 255, 255);
					imagestring($wasserzeichen, 3, 10, 10, "(c) $user", $color);
					$bild_alt=ImageCreateFromJPEG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_neu=imageCreateTrueColor($nwidth_big,$nheight_big);
					imagecopyresampled($bild_neu,$bild_alt,0,0,0,0,$nwidth_big,$nheight_big,$breite,$hoehe);
					$x = imagesx($wasserzeichen);
					$y = imagesy($wasserzeichen);
					$x = imagesx($bild_neu) - $x;
					$y = imagesy($bild_neu) - $y;
					ImageCopy($bild_neu, $wasserzeichen, $x, $y, 0 , 0, $nwidth_big,$nheight_big);
					ImageJPEG($bild_neu,"ONLINE/galerie/bilder/$renameid.$type", 90);
					$new_size=filesize("ONLINE/galerie/bilder/$renameid.$type");
					$update="UPDATE galerie_pics SET groesse='$new_size', breite='$nwidth_big', hoehe='$nheight_big' WHERE id='$renameid'";
					$sqlaction=mysql_query($update, $db);
					}
				elseif ($type=="gif")
					{
					$wasserzeichen=ImageCreateFromPNG("ONLINE/galerie/bilder/watermark.png");
					$color = imagecolorallocate($wasserzeichen, 255, 255, 255);
					imagestring($wasserzeichen, 3, 10, 10, "(c) $user", $color);
					$bild_alt=ImageCreateFromGIF("ONLINE/galerie/bilder/$renameid.$type");
					$bild_neu=imageCreateTrueColor($nwidth_big,$nheight_big);
					$color = imagecolorallocate($bild_neu, 255, 255, 255);
					imagecopyresampled($bild_neu,$bild_alt,0,0,0,0,$nwidth_big,$nheight_big,$breite,$hoehe);
					$x = imagesx($wasserzeichen); 
					$y = imagesy($wasserzeichen); 
					$x = imagesx($bild_neu) - $x; 
					$y = imagesy($bild_neu) - $y;
					ImageCopy($bild_neu, $wasserzeichen, $x, $y, 0 , 0, $nwidth_big,$nheight_big);
					ImageGIF($bild_neu,"ONLINE/galerie/bilder/$renameid.$type", 90);
					$new_size=filesize("ONLINE/galerie/bilder/$renameid.$type");
					$update="UPDATE galerie_pics SET groesse='$new_size', breite='$nwidth_big', hoehe='$nheight_big' WHERE id='$renameid'";
					$sqlaction=mysql_query($update, $db);
					}
				elseif ($type=="png")
					{
					$wasserzeichen=ImageCreateFromPNG("ONLINE/galerie/bilder/watermark.png");
					$color = imagecolorallocate($wasserzeichen, 255, 255, 255);
					imagestring($wasserzeichen, 3, 10, 10, "(c) $user", $color);
					$bild_alt=ImageCreateFromPNG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_neu=imageCreateTrueColor($nwidth_big,$nheight_big);
					$color = imagecolorallocate($bild_neu, 255, 255, 255);
					imagecopyresampled($bild_neu,$bild_alt,0,0,0,0,$nwidth_big,$nheight_big,$breite,$hoehe);
					$x = imagesx($wasserzeichen);
					$y = imagesy($wasserzeichen);
					$x = imagesx($bild_neu) - $x;
					$y = imagesy($bild_neu) - $y;
					ImageCopy($bild_neu, $wasserzeichen, $x, $y, 0 , 0, $nwidth_big,$nheight_big);
					ImagePNG($bild_neu,"ONLINE/galerie/bilder/$renameid.$type");
					$new_size=filesize("ONLINE/galerie/bilder/$renameid.$type");
					$update="UPDATE galerie_pics SET groesse='$new_size', breite='$nwidth_big', hoehe='$nheight_big' WHERE id='$renameid'";
					$sqlaction=mysql_query($update, $db);
					}
					
				// Miniatur Bilder erstellen
				if ($nwidth_big>$nheight_big)
					{
					$nwidth=120;
					$nheight=$nheight_big * $nwidth / $nwidth_big;
					$nheight=round($nheight);
					}
					else
					{
					$nheight=120;
					$nwidth=$nwidth_big / $nheight_big * $nheight;
					$nwidth=round($nwidth);
					}
				if ($type=="jpg")
					{
					$bild_gross=ImageCreateFromJPEG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImageJPEG($bild_klein,"ONLINE/galerie/bilder_klein/klein_$renameid.$type", 100);
					}
				elseif ($type=="gif")
					{
					$bild_gross=ImageCreateFromGIF("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImageGIF($bild_klein,"ONLINE/galerie/bilder_klein/klein_$renameid.$type", 100);
					}
				elseif ($type=="png")
					{
					$bild_gross=ImageCreateFromPNG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImagePNG($bild_klein,"ONLINE/galerie/bilder_klein/klein_$renameid.$type");
					}
				// Potd Bilder erstellen
				if ($nwidth_big>$nheight_big)
					{
					$nwidth=120;
					$nheight=$nheight_big * $nwidth / $nwidth_big;
					$nheight=round($nheight);
					}
					else
					{
					$nheight=120;
					$nwidth=$nwidth_big / $nheight_big * $nheight;
					$nwidth=round($nwidth);
					}
				if ($type=="jpg")
					{
					$bild_gross=ImageCreateFromJPEG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImageJPEG($bild_klein,"ONLINE/galerie/bilder_potd/potd_$renameid.$type", 90);
					}
				elseif ($type=="gif")
					{
					$bild_gross=ImageCreateFromGIF("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImageGIF($bild_klein,"ONLINE/galerie/bilder_potd/potd_$renameid.$type", 90);
					}
				elseif ($type=="png")
					{
					$bild_gross=ImageCreateFromPNG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImagePNG($bild_klein,"ONLINE/galerie/bilder_potd/potd_$renameid.$type");
					}
				echo "Das Bild \"$pic_name\" wurde erfolgreich hochgeladen. [<a href='index.php?show=galeriepicadd'>weiter</a>]<br />";
				sleep(5);
				}
				else
				{
				$error++;
				echo "$msg - Beim upload des Bildes \"$pic_name\" ist ein Fehler aufgetreten. <br />";
				sleep(5);
				}
			}
		}
	}
?>

error_reporting zeigt keine fehler an
 
Zuletzt bearbeitet:
Hi,

einen Fehler kann ich so nicht sehen, was aber durchaus an

entschuldigt bitte wenn es durcheinander aussieht XD

liegen kann. Wenn Du durch den Bandwurmcode auch nicht mehr durchsteigst, solltest Du mal ein paar Fragmente in Funktionen auslagern... ;)

Wenn die Datensätze in der DB korrekt angelegt werden, muss laut Deiner Struktur move_uploaded_file() erfolgreich gewesen sein. Irgendwo benennst Du die Dateien danach noch um. Liegt da vielleicht der Fehler? (Hast Du mal geschaut, ob die fehlenden Dateien unter ihrem temporären Namen vorhanden sind?)

LG
 
Oh ich verliere da nicht den durchblick nur andere evtl. dachte ich mir weils ja doch recht viel ist. XD

Genau das ist das Problem es wird alles absolut vernünftig ausgeführt Db eintrag und auch das ändern der Bilder usw. es ist ja auch kein @ vor z.B. move_uploaded_file so das evtl. irgendwelche fehler verschluckt werden.

Nur diese Bilder sind nicht mehr im Ordner vorhanden, es verschwinden ja auch nicht alle, also wenn ich 5 hochlade fehlt mal keins dann eins dann mal zwei usw. aber auch immer durcheinander also nicht in irgend einer reihen folge das z.B. immer das letzte fehlt oder so.

Die Bilder werden später umbenannt anhand der ID des Datenbank eintrages.
Jedoch sind die noch nicht umbenannten Dateien auch nicht vorhanden. ;)

Vorher haben sie ja immer den Namen temp_(timestamp)($i).jpg diese müssten ja dann im Ordner bilder liegen was sie jedoch nicht tun.

Es müsste ja alleine schon beim umbennen z.B. einen Fehler geben weil es die Datei nicht gibt angeblich aber da kommt ja rein garnichts alles arbeitet als würde es sowas wie Fehler garnicht geben. :S
 
Moin,

was mir auffällt ist Jenes:
Code:
if ($pic_type == "image/jpeg" ) { $filetyp++; $type="jpg";}
        if ($pic_type == "image/gif") { $filetyp++; $type="gif";}
        if ($pic_type == "image/png") { $filetyp++; $type="png";}
        
        if (empty($filetyp))

$filetyp hast du ausserhalb der Schleife deklariert.
Sofern das erste Bild diese Bedingungen passiert, ist $filetyp bei den nächsten Durchläufen nie mehr empty(), auch wenn die Bedingungen nicht erfüllt werden(und gerade bei JPGs ist die Wahrscheinlichkeit sehr hoch, da es dort recht viele Mime-Types gibt ausser image/jpeg)
 
Jo, stimmt!

$filetyp wird jetzt bei jedem durchlauf auf 0 gesetzt, mal sehen ob das die Lösung zum Problem ist, danke für den Hinweis. :)

//Edit

Also ich habe nun das sleep(5) ganz ans ende der for schleife gepackt und der timestamp für den temp namen und db eintrag wird nun auch bei jedem durchlauf neu generiert nicht wie vorher einmal und dann nicht mehr. :)

Test läufe zeigten bis dahin keine Fehler mehr danach hab ich dann noch das $filetyp in die for schleife gepackt und dann nochmal getestet auch keine Fehler mehr also ich hoffe es ist nun gelößt.
Morgen werde ich das ganze dann nochmal intensiv testen und wenn noch Fehler auftreten mich hier melden.

Danke für die super schnelle Hilfe von euch. ;)

MfG

Psycho
 
Zuletzt bearbeitet:
Noch was: :-)
Code:
$sql2="SELECT * FROM galerie_pics WHERE name='$name' AND datum='$time'";
                $data2=mysql_query($sql2, $db) or die(mysql_error());
                $rename=mysql_fetch_object($data2);
                $renameid="$rename->id";

Also eine Datei muss ja da sein, weil move_uploaded_file() erfolgreich war...vielleicht ist einfach das umbenennen fehlgeschlagen...da gibt es keine Fehlermeldung.

Teste also auch mal, ob mysql_fetch_object() überhaupt etwas liefert(woher kommen überhaupt $name und $time).

Auch rename() solltest du prüfen, ob es erfolgreich war.

Und zu allerletzt(für heut nacht):
Wie schaust du nach, ob und welche Bilder da sind? Per Skript anhand Dateinamen oder hast du dir auch schon mal das komplette Zielverzeichnis auflisten lassen...denn da sein muss etwas :-)
 
Genau, mein Reden. ;)
Wenn hier nichts Entscheidendes verschwiegen wurde, müssen die Dateien unter irgendeinem Namen in irgendeinem Verzeichnis gelandet sein.

Den Dateityp kannst Du übrigens zuverlässiger mit [phpf]getimagesize[/phpf] prüfen.

LG
 
Also das Problem scheint behoben zu sein.
Das Problem war anscheinend wirklich die spätere Db Abfrage welche Sven gepostet hat, denn es gab vor dem Mehrfachupload die Möglichkeit den Bildern eigene Namen zu geben diese habe ich jetzt aber entfernt da es sonst zu lästig ist fünf Namen einzugeben.

Die Variable $time wird in der index.php nur einmal beim script laden generiert also hatte diese immer einen festen wert deswegen gab es nun fünf Einträge mit leerem Namen und 5 mit dem gleichen Zeitwert.

Meine Vermutung ist, das bei der Db Abfrage zwischen durch immer mal wieder die gleiche Id gefunden wurde und deswegen hat das grade neu umbenannte Bild das vorherige überschrieben, da es den gleichen Namen hatte.

Nachdem ich nämlich gestern den Zeitwert immer neu generieren ließ und somit fünf mal ein anderer Zeitwert in der Db standen konnte es keine verwechslung mehr geben und kein Bild wurde zweimal unter dem gleichen Namen gespeichert.

Jetzt wird in das Feld name der temp Name gespeichert, jetzt konnte ich dann auch das sleep(5) aus dem Script entfernen ohne das noch Fehler auftreten.

Ich lasse den Dateityp nun auch durch getimagesize() prüfen.

Hier nochmal der aufgefrischte Code:

PHP:
<?php
$maxsave=10485760;
$minwidth=10;
$minheight=10;
$maxpics=100;
$maxsize=614400;
$usepics=0;
$usesave=0;

$error=0;


$info=$_POST['info'];
$catid=$_POST['kategorie'];

$sql2="SELECT * FROM galerie_pics WHERE uid='$myid'";
$data2=mysql_query($sql2, $db);
while ($us=mysql_fetch_object($data2))
	{
	$usepics++;
	$usesave=$usesave + $us->groesse;
	}
	
if ($_REQUEST['upload'])
	{
	if (isset($_FILES['bild']))
		{
		$bilder=count($_FILES['bild']);
		$bild_anzahl=0;
		for ($i=0; $i<$bilder; $i++)
			{
			if ($_FILES['bild']['error'][$i]!=4)
				{
				$bild_anzahl++;
				}
			}
		}
	$sql2="SELECT * FROM galerie_cat WHERE id='$catid'";
	$data2=mysql_query($sql2, $db);
	while ($parent=mysql_fetch_object($data2))
		{
		$parentcat=$parent->parentlist;
		$schreiben=$parent->schreiben;
		$lesen=$parent->lesen;
		}
	if ($access<$schreiben)
		{
		$error++;
		$msg="- Sie haben keine Rechte in diese Kategorie Bilder hochzuladen.<br />";
		}
	if (empty($catid))
		{
		$error++;
		$msg="$msg- Keine Kategorie ausgewählt.<br />";
		}
	for ($i=0; $i<$bild_anzahl; $i++)
		{
		$timestamp=time();
		$tempname="temp_".$timestamp.$i;
		$pic_name = $_FILES['bild']['name'][$i];
		$pic_size = $_FILES['bild']['size'][$i];
		$pic_tmp  = $_FILES['bild']['tmp_name'][$i];
		$pic_err  = $_FILES['bild']['error'][$i];
		$pic_type = getimagesize($pic_tmp);
		
		$sql3="SELECT * FROM galerie_pics WHERE uid='$myid'";
		$data3=mysql_query($sql3, $db);
		while ($us=mysql_fetch_object($data3))
			{
			$usesave=0;
			$usepics=0;
			$usepics++;
			$usesave=$usesave + $us->groesse;
			}
		$filetyp=0;
		if ($pic_type[2] == "1") { $filetyp++; $type="gif";}
		if ($pic_type[2] == "2" ) { $filetyp++; $type="jpg";}
		if ($pic_type[2] == "3") { $filetyp++; $type="png";}
		
		if (empty($filetyp))
			{
			$error++;
			$msg="$msg- Die Datei \"$pic_name\" ist keine jpeg, gif oder png.<br />";
			}
		if ($pic_size>$maxsize)
			{
			$error++;
			$maxsize=$maxsize / 1024;
			$msg="$msg - Die Datei \"$pic_name\" ist größer als $maxsize Kb.<br />";
			}
		if ($maxsave<=$usesave)
			{
			$error++;
			$msg="$msg - Ihr verfügbarer Speicher ist aufgebraucht. <br />";
			}
		elseif (($maxsave + $pic_size)<=$usesave)
			{
			$error++;
			$msg="$msg - Ihr verfügbarer Speicher reicht nicht um \"$pic_name\" hochzuladen. <br />";
			}
		if ($maxpics<=$usepics)
			{
			$error++;
			$msg="$msg - Die maximale Anzahl an Bildern ist erreicht. <br />";
			}
		switch ($pic_err) 
			{
			case 1:
				$error++;
				$msg="$msg - Die Datei überschreitet den maximal Upload des Servers.<br />";
				break;
			case 2:
				$error++;
				$msg="$msg - Die Datei überschreitet den maximal Upload des Scripts.<br />";
				break;
			case 3:
				$error++;
				$msg="$msg - Die Datei wurde nur teilweise hochgeladen.<br />";
				break;
			case 4:
				$error++;
				$msg="$msg - Es wurde keine Datei hochgeladen.<br />";
				break;
			}
		if (empty($error))
			{
			$size=getimagesize($pic_tmp);
			if (move_uploaded_file ($pic_tmp, "ONLINE/galerie/bilder/$tempname.$type"))
				{
				chmod("ONLINE/galerie/bilder/$tempname.$type", 0777);
				$sql="INSERT INTO galerie_pics (uid, catid, parentcat, name, breite, hoehe, groesse, views, typ, datum, info, gespeert, access) VALUES ('$myid', '$catid', '$parentcat', '$tempname', '$size[0]', '$size[1]', '$pic_size', '0', '$type', '$timestamp', '$info', '0', '$lesen')";
				$sqlaction=mysql_query($sql, $db);
				$sql2="SELECT * FROM galerie_pics WHERE name='$tempname' AND datum='$timestamp'";
				$data2=mysql_query($sql2, $db) or die(mysql_error());
				$rename=mysql_fetch_object($data2);
				$renameid="$rename->id";
				$breite=$size[0];
				$hoehe=$size[1];
				if ($breite>1024 AND $hoehe>768 AND $breite>$hoehe)
					{
					$nwidth_big=1024;
					$nheight_big=$hoehe * $nwidth_big / $breite;
					$nheight_big=round($nheight_big);
					}
					elseif ($breite>768 AND $hoehe>1024 AND $breite<$hoehe)
					{
					$nheight_big=1024;
					$nwidth_big=$breite / $hoehe * $nheight_big;
					$nwidth_big=round($nwidth_big);
					}
					else
					{
					$nheight_big=$hoehe;
					$nwidth_big=$breite;
					}
				rename("ONLINE/galerie/bilder/$tempname.$type", "ONLINE/galerie/bilder/$renameid.$type");
				// Wasserzeichen hinzufügen
				if ($type=="jpg")
					{
					$wasserzeichen=ImageCreateFromPNG("ONLINE/galerie/bilder/watermark.png");
					$color = imagecolorallocate($wasserzeichen, 255, 255, 255);
					imagestring($wasserzeichen, 3, 10, 10, "(c) $user", $color);
					$bild_alt=ImageCreateFromJPEG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_neu=imageCreateTrueColor($nwidth_big,$nheight_big);
					imagecopyresampled($bild_neu,$bild_alt,0,0,0,0,$nwidth_big,$nheight_big,$breite,$hoehe);
					$x = imagesx($wasserzeichen);
					$y = imagesy($wasserzeichen);
					$x = imagesx($bild_neu) - $x;
					$y = imagesy($bild_neu) - $y;
					ImageCopy($bild_neu, $wasserzeichen, $x, $y, 0 , 0, $nwidth_big,$nheight_big);
					ImageJPEG($bild_neu,"ONLINE/galerie/bilder/$renameid.$type", 90);
					$new_size=filesize("ONLINE/galerie/bilder/$renameid.$type");
					$update="UPDATE galerie_pics SET groesse='$new_size', breite='$nwidth_big', hoehe='$nheight_big' WHERE id='$renameid'";
					$sqlaction=mysql_query($update, $db);
					}
				elseif ($type=="gif")
					{
					$wasserzeichen=ImageCreateFromPNG("ONLINE/galerie/bilder/watermark.png");
					$color = imagecolorallocate($wasserzeichen, 255, 255, 255);
					imagestring($wasserzeichen, 3, 10, 10, "(c) $user", $color);
					$bild_alt=ImageCreateFromGIF("ONLINE/galerie/bilder/$renameid.$type");
					$bild_neu=imageCreateTrueColor($nwidth_big,$nheight_big);
					$color = imagecolorallocate($bild_neu, 255, 255, 255);
					imagecopyresampled($bild_neu,$bild_alt,0,0,0,0,$nwidth_big,$nheight_big,$breite,$hoehe);
					$x = imagesx($wasserzeichen); 
					$y = imagesy($wasserzeichen); 
					$x = imagesx($bild_neu) - $x; 
					$y = imagesy($bild_neu) - $y;
					ImageCopy($bild_neu, $wasserzeichen, $x, $y, 0 , 0, $nwidth_big,$nheight_big);
					ImageGIF($bild_neu,"ONLINE/galerie/bilder/$renameid.$type", 90);
					$new_size=filesize("ONLINE/galerie/bilder/$renameid.$type");
					$update="UPDATE galerie_pics SET groesse='$new_size', breite='$nwidth_big', hoehe='$nheight_big' WHERE id='$renameid'";
					$sqlaction=mysql_query($update, $db);
					}
				elseif ($type=="png")
					{
					$wasserzeichen=ImageCreateFromPNG("ONLINE/galerie/bilder/watermark.png");
					$color = imagecolorallocate($wasserzeichen, 255, 255, 255);
					imagestring($wasserzeichen, 3, 10, 10, "(c) $user", $color);
					$bild_alt=ImageCreateFromPNG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_neu=imageCreateTrueColor($nwidth_big,$nheight_big);
					$color = imagecolorallocate($bild_neu, 255, 255, 255);
					imagecopyresampled($bild_neu,$bild_alt,0,0,0,0,$nwidth_big,$nheight_big,$breite,$hoehe);
					$x = imagesx($wasserzeichen);
					$y = imagesy($wasserzeichen);
					$x = imagesx($bild_neu) - $x;
					$y = imagesy($bild_neu) - $y;
					ImageCopy($bild_neu, $wasserzeichen, $x, $y, 0 , 0, $nwidth_big,$nheight_big);
					ImagePNG($bild_neu,"ONLINE/galerie/bilder/$renameid.$type");
					$new_size=filesize("ONLINE/galerie/bilder/$renameid.$type");
					$update="UPDATE galerie_pics SET groesse='$new_size', breite='$nwidth_big', hoehe='$nheight_big' WHERE id='$renameid'";
					$sqlaction=mysql_query($update, $db);
					}
					
				// Miniatur Bilder erstellen
				if ($nwidth_big>$nheight_big)
					{
					$nwidth=120;
					$nheight=$nheight_big * $nwidth / $nwidth_big;
					$nheight=round($nheight);
					}
					else
					{
					$nheight=120;
					$nwidth=$nwidth_big / $nheight_big * $nheight;
					$nwidth=round($nwidth);
					}
				if ($type=="jpg")
					{
					$bild_gross=ImageCreateFromJPEG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImageJPEG($bild_klein,"ONLINE/galerie/bilder_klein/klein_$renameid.$type", 100);
					}
				elseif ($type=="gif")
					{
					$bild_gross=ImageCreateFromGIF("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImageGIF($bild_klein,"ONLINE/galerie/bilder_klein/klein_$renameid.$type", 100);
					}
				elseif ($type=="png")
					{
					$bild_gross=ImageCreateFromPNG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImagePNG($bild_klein,"ONLINE/galerie/bilder_klein/klein_$renameid.$type");
					}
				// Potd Bilder erstellen
				if ($nwidth_big>$nheight_big)
					{
					$nwidth=120;
					$nheight=$nheight_big * $nwidth / $nwidth_big;
					$nheight=round($nheight);
					}
					else
					{
					$nheight=120;
					$nwidth=$nwidth_big / $nheight_big * $nheight;
					$nwidth=round($nwidth);
					}
				if ($type=="jpg")
					{
					$bild_gross=ImageCreateFromJPEG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImageJPEG($bild_klein,"ONLINE/galerie/bilder_potd/potd_$renameid.$type", 90);
					}
				elseif ($type=="gif")
					{
					$bild_gross=ImageCreateFromGIF("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImageGIF($bild_klein,"ONLINE/galerie/bilder_potd/potd_$renameid.$type", 90);
					}
				elseif ($type=="png")
					{
					$bild_gross=ImageCreateFromPNG("ONLINE/galerie/bilder/$renameid.$type");
					$bild_klein=imageCreateTrueColor($nwidth,$nheight);
					imagecopyresampled($bild_klein,$bild_gross,0,0,0,0,$nwidth,$nheight,$nwidth_big,$nheight_big);
					ImagePNG($bild_klein,"ONLINE/galerie/bilder_potd/potd_$renameid.$type");
					}
				echo "Das Bild \"$pic_name\" wurde erfolgreich hochgeladen. [<a href='index.php?show=galeriepicadd'>weiter</a>]<br />";
				}
				else
				{
				$error++;
				echo "$msg - Beim upload des Bildes \"$pic_name\" ist ein Fehler aufgetreten. <br />";
				}
			}
		}
	}
?>
 
Zuletzt bearbeitet:
Zurück