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.png
kehrte 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!