如何在PHP中识别文件是否为图像
我尝试过使用如何在PHP中识别文件是否为图像,php,server,Php,Server,我尝试过使用getimagesize(),finfo和获取Mime类型函数。但是我注意到我们不能信任这些函数,因为我观察到它在我的一些图像文件中是失败的。我们有没有更好的方法来识别文件是否为图像。 用例:我有一个包含php代码的文件。我用一些图像扩展名保存了这个文件。现在我想阻止上传此文件。尝试php的内置方法检查图像类型 int exif_imagetype ( string $filename ) 如果文件不是有效图像,此方法将返回false,否则将返回指向图像类型的整数 它还抛出了一个通
getimagesize()
,finfo
和获取Mime类型函数。但是我注意到我们不能信任这些函数,因为我观察到它在我的一些图像文件中是失败的。我们有没有更好的方法来识别文件是否为图像。
用例:我有一个包含php代码的文件。我用一些图像扩展名保存了这个文件。现在我想阻止上传此文件。尝试php的内置方法检查图像类型
int exif_imagetype ( string $filename )
如果文件不是有效图像,此方法将返回false
,否则将返回指向图像类型的整数
它还抛出了一个通知。所以你可以这样做
if(@exif_imagetype($file)){
//Valid Image
} else {
// Invalid
}
尝试php的内置方法来检查图像类型
int exif_imagetype ( string $filename )
如果文件不是有效图像,此方法将返回false
,否则将返回指向图像类型的整数
它还抛出了一个通知。所以你可以这样做
if(@exif_imagetype($file)){
//Valid Image
} else {
// Invalid
}
我想你应该看一下报纸
mime_content_type
或
的
请参阅下面文章的更多详细视图
我想你应该看一下
mime_content_type
或
的
请参阅下面文章的更多详细视图
您可以尝试以下代码:
function is_image($path)
{
$a = getimagesize($path);
$image_type = $a[2];
if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG
,IMAGETYPE_PNG , IMAGETYPE_BMP)))
{
return true;
}
return false;
}
您可以尝试以下代码:
function is_image($path)
{
$a = getimagesize($path);
$image_type = $a[2];
if(in_array($image_type , array(IMAGETYPE_GIF , IMAGETYPE_JPEG
,IMAGETYPE_PNG , IMAGETYPE_BMP)))
{
return true;
}
return false;
}
如果您的服务器在Linux上运行,则应执行
文件:
$mime = exec("file $tmpFilePath -z -b --mime-type");
这将正确定义mime类型如果服务器在Linux上运行,则应执行文件
:
$mime = exec("file $tmpFilePath -z -b --mime-type");
这将正确定义mime类型显示您的代码。可能重复显示您的代码。可能重复我尝试了此操作,但如果您保存的文件包含具有某个图像扩展名的脚本,则它也会返回有效的图像,但不应,你能粘贴文件的内容吗?希望看到保存为图像扩展名的文件也会返回有效的图像。我尝试过几种形式,如果无效,则返回false。我尝试过这种方法,但如果您保存的文件包含一些带有图像扩展名的脚本,那么它也会返回有效图像。您可以粘贴文件的内容吗?希望看到保存为图像扩展名的文件也会返回有效图像。我尝试了几种形式,如果无效,则返回false