Probleme beim Bild verkleinern

Das Script läd ein Bild hoch. Das dann per resizeImage verkleinert wird so das es eine Breite von 280 Pixeln und eine Dementsprechende Höhe hat. Der link zum Bild wird dann an eine Datenbank übertragen.
 
Sooo ich habs selber gefunden. Lag an falsch eingesetzten strtoupper() Funktionen. Danke nochmal an Alle !
 
Mein Vorschlag:
PHP:
<?php

	/**
	 * Erstellt eine Minitaturgrafik von einem Original
	 *
	 * @param    string   $srcFilename   Pfadangabe der Quellgrafik
	 * @param    int      $width         Maximalbreite der Miniaturgrafik
	 * @param    int      $height        Maximalhöhe der Miniaturgrafik
	 * @param    string   $dstFilename   optional: Pfadangabe zur Speicherung der Miniaturgrafik
	 * @param    int      $quality       nur bei JPEG-Grafiken: Qualität der Miniaturgrafik
	 * @return   mixed
	 */
	function image_createThumbnail( $srcFilename, $width, $height, $dstFilename=null, $quality=75 )
	{

		if( file_exists($srcFilename) || is_readable($srcFilename) ) {
			return false;
		}
		if( $srcInfo = getimagesize($srcFilename) ) {
			return false;
		}
		switch( $srcInfo[2] ) {
			case 1:
				$dstIm = imagecreatefromgif($srcFilename);
				break;
			case 2:
				$dstIm = imagecreatefromjpeg($srcFilename);
				break;
			case 3:
				$dstIm = imagecreatefrompng($srcFilename);
				break;
			default:
				return false;
		}
		if( $width && ($srcInfo[0] < $srcInfo[1]) ) {
			$width  = ($height / $srcInfo[1]) * $srcInfo[0];
		} else {
			$height = ($width / $srcInfo[0]) * $srcInfo[1];
		}
		$dstIm = imagecreatetruecolor($width, $height);
		imagecopyresampled($dstIm, $srcIm, 0, 0, 0, 0, $width, $height, $srcInfo[0], $srcInfo[1]);
		switch( $srcInfo[2] ) {
			case 1:
				return imagegif($dstIm, $dstFilename);
				break;
			case 2:
				return imagejpeg($dstIm, $dstFilename, $quality);
				break;
			case 3:
				return imagepng($dstim $dstFilename);
				break;
			default:
				return false;
		}

	}

	session_start();
	datenbank();

	$max_byte_size = 800000;
	$errors = array();

	while( isset($_POST['submit']) && $_POST['submit']=='Upload' ) {

		// Prüfung der Dateigröße der hochgeladenen Datei
		if( $_FILES['file']['size'] > $max_byte_size ) {
			$_FILES['file']['error'] = UPLOAD_ERR_INI_SIZE;
		}
		// Prüfung anderer Fehler beim Hochladen der Datei
		switch( $_FILES['file']['error'] ) {
			case UPLOAD_ERR_INI_SIZE:
			case UPLOAD_ERR_FORM_SIZE:
				$errors[] = 'Die hochgeladene Datei überschreitet die erlaubte maximale Dateigröße von '.$max_byte_size.' Byte.';
				break 2;
			case UPLOAD_ERR_PARTIAL:
				$errors[] = 'Die Datei wurde nur teilweise hochgeladen.';
				break 2;
			case UPLOAD_ERR_NO_FILE:
				$errors[] = 'Es wurde keine Datei hochgeladen.';
				break 2;
		}

		// Prüfung des Dateiformats
		list(,,$type,) = @getimagesize($_FILES['file']['tmp_name']);
		$extensions = array(1=>'gif', 2=>'jpg', 3=>'png');
		if( !is_int($type) || !isset($extensions[$type]) ) {
			$errors[] = 'Die hochgeladene Datei ist keine gültige GIF-, JPEG- oder PNG-Grafikdatei.';
			break;
		}

		// Erstellung des Thumbnail
		$dstFilename = 'w_'.strtoupper($_SESSION['username']).'.'.$extensions[$type];
		if( !image_createThumbnail($_FILES['file']['tmp_name'], 280, 0, 'foo/'.$dstFilename, 100) ) {
			$errors[] = 'Fehler beim Erstellen eines Thumbnail.';
			break;
		}

		// Verschieben der hochgeladenen Datei
		if( !move_uploaded_file($_FILES['file']['tmp_name'], 'bar/'.$dstFilename) ) {
			$errors[] = 'Die hochgeladene Grafik konnte nicht verschoben werden.';
			break;
		}

		// Eintrag in die Datenbank
		$query = '
			UPDATE
			        `WHOIS`
			  SET
			        `BILD` = "'.mysql_real_escape_string('leer/'.$dstFilename).'"
			  WHERE
			        `USERNAME` = "'.mysql_real_escape_string($_SESSION['USERNAME']).'"
			    AND `ZEIT`     = "'.mysql_real_escape_string($_GET['ZEIT']).'"
			';
		mysql_query($query)
			or die(mysql_error());
	}

	// Überprüfung von möglichen Fehlern
	if( !empty($errors) ) {
		print_r($errors);
	} else {
		echo 'Datei wurde erfolgreich hochgeladen.';
	}

?>
Die sperrige Funktionsdefinition kannst du auch auslagern. Ich hoffe, es funktioniert.
 
Zurück