PHP: $ _FILES ["Datei"] ["Typ"] ist nutzlos [geschlossen]

ich benutzevar_dump(@$_FILES['file']['type']) zum Testen habe ich den Dateityp hochgeladen

Zuerst habe ich eine hochgeladenexe file namens "uninstall.exe", und es kehrte zurück

"string 'application/octet-stream' (length=24)"

Dann habe ich diese Datei in umbenanntuninstall.pngkehrte es zurück

string 'image/png' (length=9)

Mein Fazit lautet:$ _FILES ['file'] ['type'] prüft nur die Dateierweiterung, nicht den ursprünglichen Dateityp.

Der folgende Code stammt vonw3cschool:

$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/png"))
&& ($_FILES["file"]["size"] < 20000)
&& in_array($extension, $allowedExts))

Meiner Ansicht nach$_FILES["file"]["type"] In den obigen Codes ist es nicht notwendig, wir können die Dateierweiterung nur mit überprüfenexplode() undin_array

Ich bin nur ein PHP-Anfänger, kann jemand meine Idee bestätigen? Vielen Dank!

Antworten auf die Frage(3)

Ihre Antwort auf die Frage