Heim > Backend-Entwicklung > PHP-Tutorial > PHP identifiziert Dateimaskierung (Datei-Upload)

PHP identifiziert Dateimaskierung (Datei-Upload)

藏色散人
Freigeben: 2023-04-08 10:46:01
nach vorne
2714 Leute haben es durchsucht

PHP identifiziert Dateimaskierung (Datei-Upload)

Frage:

Beim Hochladen von Dateien muss überprüft werden, ob die hochgeladenen Dateien legal sind Dateiverkleidungen identifizieren?

Ein einfacher Test: Ändern Sie das TXT-Dateisuffix direkt in jpg; laden Sie es hoch

<!DOCTYPE html>
<html>
    <title>test</title>
    <body>
        <form enctype="multipart/form-data" action="test.php" method="POST">
            <!-- MAX_FILE_SIZE must precede the file input field -->
            <input type="hidden" name="MAX_FILE_SIZE" value="102400" />
            <!-- Name of input element determines name in $_FILES array -->
            Send this file: <input name="userfile" type="file" />
            <input type="submit" value="Send File" />
        </form>
    </body>
</html>
Nach dem Login kopieren

1. Holen Sie sich das Dateisuffix über $_FILES['userfile']['type'];

$data = $_FILES[&#39;userfile&#39;];
var_dump($data);
/**结果**/
/*
array(5) {
  ["name"]=>
  string(8) "test.jpg"
  ["type"]=>
  string(10) "image/jpeg"
  ["tmp_name"]=>
  string(26) "/private/var/tmp/phpfyE3EC"
  ["error"]=>
  int(0)
  ["size"]=>
  int(19)
}
*/
Nach dem Login kopieren

wurde nicht erkannt;

2. Verwenden Sie die Funktion pathinfo(), um Dateipfadinformationen zu erhalten

$data = $_FILES[&#39;userfile&#39;];
// var_dump($data);
var_dump(pathinfo($data[&#39;name&#39;]));
/**结果**/
/*
array(4) {
  ["dirname"]=>
  string(1) "."
  ["basename"]=>
  string(8) "test.jpg"
  ["extension"]=>
  string(3) "jpg"
  ["filename"]=>
  string(4) "test"
}
*/
Nach dem Login kopieren

wurde nicht erkannt;

3. muss installiert und aktiviert werden)

$data = $_FILES[&#39;userfile&#39;];
$filename = $data[&#39;tmp_name&#39;];
$finfo   = finfo_open(FILEINFO_MIME_TYPE);//返回 mime 类型。 自 PHP 5.3.0 可用。
$mimetype = finfo_file($finfo, $filename);
finfo_close($finfo);
var_dump($mimetype);
/**结果**/
//string(10) "text/plain"
Nach dem Login kopieren
Ja! Dürfen! Dürfen! Es wurde festgestellt, dass der Datei-MIME-Typ kein JPG ist!

Weitere PHP-Kenntnisse finden Sie im

PHP-Tutorial!

Das obige ist der detaillierte Inhalt vonPHP identifiziert Dateimaskierung (Datei-Upload). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
php
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage