Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在php中获取文件mime类型的最佳方法_Php_Security_File Upload - Fatal编程技术网

在php中获取文件mime类型的最佳方法

在php中获取文件mime类型的最佳方法,php,security,file-upload,Php,Security,File Upload,获取文件mime类型的最佳msit安全方式是什么?我已经找到了这个: 但是fileinfo()似乎很容易操作。有没有更好的方法来获取文件mime类型? 顺便说一下,我需要它用于图像文件。getimagesize()也返回mime类型 还有另一种方法 <?php $info = getimagesize("image.gif"); $type = $info['mime']; ?> 但是,如果你能准确地说出“安全”是什么意思以及你想进行什么样的操作,这会有所帮助。你可以自己扫

获取文件mime类型的最佳msit安全方式是什么?我已经找到了这个:

但是fileinfo()似乎很容易操作。有没有更好的方法来获取文件mime类型? 顺便说一下,我需要它用于图像文件。

getimagesize()也返回mime类型

还有另一种方法

<?php
$info = getimagesize("image.gif");
$type = $info['mime'];
?>


但是,如果你能准确地说出“安全”是什么意思以及你想进行什么样的操作,这会有所帮助。

你可以自己扫描文件,查找魔法字节以及其他字节。我相信在PECL中有很多方便的函数,但是由于它们在目标主机上的可用性可能会下降,您可能希望付出艰苦的努力。例如,请参见此示例-

-用于文件签名(或魔法字节,或现在调用的任何内容)。您知道要接受的文件类型,所以只需扫描传入文件中的签名集

另一个选项是允许PHP运行unixshell,并使用带有适当标志的
file
命令来测试文件,并根据实际文件内容获得真正的mime类型

<?php
$info = getimagesize("image.gif");
$type = $info['mime'];
?>