• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Bildupload mit skalierung

TecEye

New member
Hy Leute hab da mal wieder ein Problem, will ein Bild oder mehrere Bilder hochladen lassen, die dann aber auf maximal 300*300px skaliert werden sollen, habe mich strickt ans manual gehalten, aber irgendwie speichert er mir das skalierte Bild nicht. neue Breiten usw werden ausgegeben, orginamlbild wird auch in den ordner verschoben, rechte sind alle gegeben, aber wie gesagt das Thumb will es einfach nicht speichern. Seht ihr ev was ich falsch mache?
PHP:
$i					= 0;
	$maxsize			= 300;
	$folder				= "./user/";
	$allowedExtensions	= array('jpg', 'jpeg', 'JPG', 'JPEG');
	foreach($_FILES as $file) :  
		foreach($file['name'] as $filename) :  
			$extension = getExtension($filename);  
			if(!in_array($extension, $allowedExtensions)) {  
				echo 'FORBIDDEN EXTENSION', $filename;
				++$i;				
				continue;  
			}
			echo $filename."<br />";
			
			$imageTmp     = imagecreatefromjpeg ($file['tmp_name'][$i]);
			
			$oWidth		= imageSX($imageTmp);
			$oHeight	= imageSY($imageTmp);
			echo "old = w:".$oWidth." h:".$oHeight."<br />";
			
			if ($oWidth>$oHeight){
				$nWidth = $maxsize;
				$nHeight = round(($oHeight/$oWidth)*$maxsize);
			}else{
				$nHeight = $maxsize;
				$nWidth = round(($oWidth/$oHeight)*$maxsize);
			}
			echo "new = w:".$nWidth." h:".$nHeight."<br />";
			
			$new_name 	= md5(uniqid(rand()));
			
			$imageResized = imagecreatetruecolor($nWidth, $nHeight);
			imagecopyresampled($imageResized, $imageTmp, 0, 0, 0, 0, $nWidth, $nHeight, $oWidth, $oHeight);
			
			imagejpeg($imageResized, $folder.$new_name.'.jpg');
			imagedestroy($imageResized);
			echo "<img src='".$folder.$new_name.".jpg'><br />";
			
			move_uploaded_file($file['tmp_name'][$i], $folder.$filename);
			echo "<img src='".$folder.$filename."'><br />";
			
			++$i;
		endforeach;  
	endforeach;
	//header("Location: test.php");
 
Zuletzt bearbeitet:
1. Deine Variable $i hat nicht immer den richtigen Wert. Mach' in deinem zweiten foreach doch einfach $files['name'] as $i => $filename
2. Hast du error_reporting auf E_ALL?
3. Kannst du das neue Bild in den Browser ausgeben lassen?
4. Wenn dein Bild kleiner als 300x300 ist, wird vergrößert. Willst du das?
5. Warum machst du kein imagedestroy für $imageTmp?
6. Ich würde ja die Klammernschreibweise nicht mit der end... Schreibweise mischen. Entscheide dich für eines.
 
Eine Seite mit nix drauf, gut ist ja auch nur das bild was gezeigt werden würde also thumb und orginal, aber nix kommt, nichmal die ausgabe der breite/höhe

Die Fehlerkonsole spuckt auch nix aus :(
 
Zuletzt bearbeitet:
Habe vor längerer Zeit ein recht flexibles Script geschrieben (relativ umfangreich), dass es ermöglicht Bilder hochzuladen, sie bestimmten Verzeichnissen zuzuordnen , zu skalieren, wenn nötig zu croppen, Originalbilder auf die gewünschten Größen zu reduzieren und gleichzeitig Thumbs zu erstellen, die dann auch dort abgelegt werden, wo man sie haben will.

Ich möchte das Script nur hier nicht posten, weil es eben, wie erwähnt, recht umfangreich ist, nur sparsam auskommentiert und sicher unbewältigbar viele Anfragen kommen würden.

Ich würde es Dir aber gerne zur Verfügung stellen und den Umgang damit erklären. Schreib einfach an meine Mail: schlegel.berlin@arcor.de
 
Zuletzt bearbeitet:
Zurück
Oben