>  기사  >  백엔드 개발  >  PHP는 파일 가장 무도회(파일 업로드)를 식별합니다.

PHP는 파일 가장 무도회(파일 업로드)를 식별합니다.

藏色散人
藏色散人앞으로
2020-01-27 15:11:182658검색

PHP는 파일 가장 무도회(파일 업로드)를 식별합니다.

질문:

파일을 업로드할 때 업로드된 파일이 합법적인지 확인하는 방법이 필요합니다.

간단한 테스트: txt 파일 접미사를 jpg로 직접 변경하세요.

<!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>

1. $_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)
}
*/

2 .Use 파일 경로 정보를 얻기 위한 pathinfo() 함수

$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"
}
*/

감지되지 않음;

3.PHP의 확장 fileinfo(설치 및 활성화 필요)

$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"

예! 할 수 있다! 할 수 있다! 파일 MIME 형식이 jpg가 아닌 것으로 감지되었습니다!

더 많은 관련 PHP 지식을 보려면

php 튜토리얼

을 방문하세요!

위 내용은 PHP는 파일 가장 무도회(파일 업로드)를 식별합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 cnblogs.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제