Hilfe bei Dateiüberprüfung

Probier mal Folgendes:
PHP:
<?php

	$errors = array();
	$max_filesize = 15000;


	while( !empty($_FILES) ) {

		if( $_FILES['ufile']['size'][0] > $max_filesize ) {
			$_FILES['ufile']['error'][0] = UPLOAD_ERR_INI_SIZE;
		}
		switch( $_FILES['ufile']['error'][0] ) {
			case UPLOAD_ERR_INI_SIZE:
			case UPLOAD_ERR_FORM_SIZE:
				$errors[] = 'Die hochgeladene Datei überschreitet die festgelegte maximale Dateigröße von '.$max_filesize.' kb!';
				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;
		}
		$imageInfo = @getimagesize($_FILES['ufile']['tmp_name'][0]);
		if( !in_array($imageInfo[2], array(1, 2)) ) {
			$errors[] = 'Die hochgeladene Datei ist keine gültige  GIF- oder JPEG-Grafikdatei!';
			break;
		}

		$path = '../pictures/'.$_SESSION['user'].'/'.$_POST['projekt'].'/'.$_FILES['ufile']['name'][0];
		$query = '	
			INSERT INTO
			        `bilder`
			  SET
			        `username`     = "'.mysql_real_escape_string($_SESSION['user']).'",
			        `id`           = "'.mysql_real_escape_string($_FILES['ufile']['name'][0]).'",
			        `datum`        = "'.date('d.m.y').'",
			        `uhrzeit`      = "'.date('H:i:s').'",
			        `projekt_name` = "'.mysql_real_escape_string($_POST['projekt']).'"
			';
		if( move_uploaded_file($_FILES['ufile']['tmp_name'][0], $path) || chmod($path, 0777) || mysql_query($query) ) {
			header($_SERVER['SERVER_PROTOCOL'].' 500 Internal Server Error', true);
			break;
		}

		break;

	}


	if( !empty($errors) ) {
		print_r($errors);
	} else {
		echo 'Dateiname: '.$_FILES['ufile']['name'][0].'<br/>';
		echo 'Dateigröße: '.$_FILES['ufile']['size'][0].'<br/>';
		echo 'Dateityp: '.$_FILES['ufile']['type'][0].'<br/>';
		echo '<img src="'.$path.'">';
	}

?>
 
Danke dir.
Nun meckert er schonmal wenn datei zu gross oder Falsche Datei.

Nur er gibt aus
Array ( [0] => Die hochgeladene Datei überschreitet die festgelegte maximale Dateigröße von 15000 kb! )

Datei war grösser das ist korrekt. Aber wo kommt das array [0] her. Das ist doch nirgends in ausgabe oder irre ich mich?

Und noch eine frage. Break ist mir ja bekannt aber warum ist bei deinem code eine 2 dahinter?
 
Die print_r()-Funktion gibt die Inhalte eines Arrays aus. Der Wert in den Klammern entspricht dabei dem Schlüssel des Elements.

Das numerische Argument hinter break beschreibt die Anzahl der abzubrechenden Sequenzen.
 
Guten Morgen.
1mal muss ich noch nerven.
Das Script schreit auf jeden fall schonmal wenn datei zugross ist.
Aber wenn ich gif oder jpg hochladen dann kommt das es keine gültige jpg oder gif datei ist.
 
Mein Fehler. Die Prüfung des Dateityps war fehlerhaft. Ich habe meinen vorherigen Beitrag entsprechend korrigiert.
 
Zurück