Kolwitz: PHP Upload, aber nur Bilder.

Beitrag lesen

Hallo, ich bin ein eifriger Mitleser, aber kein Mitschreiber. Doch nun starte ich einmal den Versuch!

Da ich einen Upload über PHP verwirklichen will.

In diesem Fall möchte ich nur JPG, JPEG, GIF, PNG erlauben und kein Bild grösser als 3 MB.

Weiter habe ich die Frage ist das OK über die MIME type, die Datei zu ermitteln? Ich speicher anschliessend die Bilder unter einem neuen Namen, mit der MIME Endung ab. Wie 252453245432.jpg

Als erstes habe ich das HTML Formular


<form action="#" method="post" enctype="multipart/form-data">
    Select image to upload:
    <input type="file" name="userfile_pic" id="fileToUpload" accept="image/*">
    <input type="submit" value="Upload Image" name="submit">
</form>

anschließend behandle ich die übergebenen Daten so


if(isset($_GET['save'])) {

	$uploadgroesse =24000000;	 # 3 MB

	if( is_uploaded_file ( $_FILES['userfile_pic']['tmp_name'] ) )
		{
		if($_FILES['userfile_pic']['size'] < $uploadgroesse)
			{
				
			$finfo = new finfo(FILEINFO_MIME_TYPE);
			if (false === $ext = array_search(
				$finfo->file($_FILES['userfile_pic']['tmp_name']),
				array(
					'jpg' => 'image/jpg',
					'jpg' => 'image/jpeg',
					'png' => 'image/png',
					'gif' => 'image/gif',
				),true)) 
					{
					$error_msg = "Das ist keine JPG, JPEG, GIF oder PNG Datei";	
					}	
				else		
					{
					$success_msg = "Bild wird abgespeichert!.";  
          #
          # Hier speicher ich dann das Bild ab
          #
					}
			}
		else
			{
			$error_msg = "Das Bild ist zu Gross, max. 3 MB.";	
			}
		}
	else
		{
		$error_msg = "Es wurde Keine Bilddatei ausgewählt.";	
		}
}