Io uso var_dump(@$_FILES['file']['type'])
per testare il tipo di file che ho caricato
In primo luogo, ho caricato un exe file
chiamato "uninstall.exe
", ed è tornato
"string 'application/octet-stream' (length=24)"
Poi, ho rinominato questo file per uninstall.png
, è tornato
string 'image/png' (length=9)
la mia conclusione è: $ _FILES [ 'file'] [ 'type'] solo che estensione di file ck, non il tipo di file originale.
Il seguente codice da w3cschool:
$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))
penso $_FILES["file"]["type"]
nei codici di cui sopra non è necessaria, possiamo solo controllare estensione del file utilizzando explode()
e in_array
Sono solo un principiante php, qualcuno può confermare la mia idea? Grazie!
Sì, credo che molti di noi sanno che il tipo di file può essere falsificato. – Class
Una lezione per non usare w3schools – SomeShinyObject
Grazie, sono felice di aver trovato qualcosa di sbagliato in w3cschool – nut