Sono un principiante di PHP e attualmente sto imparando la parte "Convalida il caricamento del file".PHP Convalida il caricamento file
Ho fatto una pagina test.php contenente codice seguente:
var_dump(@$_FILES['file']['type']);
In primo luogo, ho caricato un "img.gif" immagine e restituito:
string 'image/gif' (length=9)
Poi, ho cambiato dell'immagine estensione ".jpg" ed è tornato:
string 'image/jpeg' (length=10)
Così ho capito $ _FILES [ "file"] [ "tipo"] restituisce solo il file caricato estensione, ma in realtà non ha verificato quale file è.
In questa pagina, http://www.w3schools.com/php/php_file_upload.asp, c'è un codice:
$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))
mi chiedo perché i codici di cui sopra controllare estensione del file due volte? Ho cancellato alcuni dei codici precedenti e questo è il mio nuovo codice:
$allowedExts = array("gif", "jpeg", "jpg", "png");
$extension = end(explode(".", $_FILES["file"]["name"]));
if (($_FILES["file"]["size"] < 20000) && in_array($extension, $allowedExts))
Il mio codice è corretto? O hai qualche modo migliore per convalidare il file di upload è un'immagine?
Grazie!
Perché il mio post ha avuto un downvote? Voglio solo assicurarmi che $ _FILES ["file"] ["tipo"] non sia necessario nei codici di w3schools – nut