$_FILES['tmp_name']的魔力号,但在这一点上,文件是加载到服务器上的临时文件夹。我不能在同时检查它是流到服务器,所以我不能中止加载到临时之前,它是完全加载。// check file type with the first bit of magic numbers
function is_magic_number_ok($file)
{
switch ($this->extension) {
case '.ai':
$magic_option = array(
'magic_number_hex' => '25504446',
'magic_number_bit_length' => 4,
);
break;
case '.bmp':
$magic_option = array(
'magic_number_hex' => '424D',
'magic_number_bit_length' => 2,
);
break;
case '.class':
$magic_option = array(
'magic_number_hex' => 'CAFEBABE',
'magic_number_bit_length' => 4,
);
break;
case '.jpg':
$magic_option = array(
'magic_number_hex' => 'FFD8',
'magic_number_bit_length' => 2,
);
break;
case '.jp2':
$magic_option = array(
'magic_number_hex' => '0000000C6A5020200D0A',
'magic_number_bit_length' => 10,
);
break;
case '.gif':
$magic_option = array(
'magic_number_hex' => '47494638',
'magic_number_bit_length' => 4,
);
break;
case '.tif':
$magic_option = array(
'magic_number_hex' => '4949',
'magic_number_bit_length' => 2,
);
break;
case '.png':
$magic_option = array(
'magic_number_hex' => '89504E47',
'magic_number_bit_length' => 4,
);
break;
default:
return false;
}
// get the bit limited file length and convert to HEX
$file_bin_stream = file_get_contents($file, NULL, NULL, 0, $magic_option['magic_number_bit_length']);
$file_hex = strtoupper(bin2hex($file_bin_stream));
if ($magic_option['magic_number_hex'] == $file_hex) {
echo 'true';
return true;
} else {
echo 'false';
return false;
}
}发布于 2016-08-07 19:42:22
最后,php有一个内置的文件信息扩展名,它将为您完成大部分工作。更多信息:http://php.net/fileinfo
https://stackoverflow.com/questions/38817825
复制相似问题