如何在PHP中检查上传文件是否为PDF

use*_*104 1 php pdf mime

对于上传文件类型检查,我已实现:

$_FILES["file"]["type"][$i] == 'application/pdf'
Run Code Online (Sandbox Code Playgroud)

但是,这个检查不适用于我更改扩展名的情况.

所以,经过一番研究,我试过了

$finfo = new finfo();
$fileMimeType = $finfo->file($_FILES["file"]["name"][$i] );
Run Code Online (Sandbox Code Playgroud)

要么:

$finfo = finfo_open(FILEINFO_MIME_TYPE);
$fileMimeType = finfo_file($finfo,$_FILES["file"]["name"][$i])
Run Code Online (Sandbox Code Playgroud)

但是,$ fileMimeType没有回显.

如何解决问题?谢谢

Hei*_*tad 6

读取文件的前4个字节并检查它们是否匹配%PDF.

$filename = "pdffile";
$handle = fopen($filename, "r");
$header = fread($handle, 4);
fclose($handle);
Run Code Online (Sandbox Code Playgroud)

检查$ header对 %PDF