检查图像是否有效显示

时间:2017-09-26 17:44:16

标签: php

我正在尝试检查用户输入的链接是否是有效图像。我尝试使用函数getimagesize()来做到这一点,然后如果函数抛出错误,那么它就不是有效的图像。

由于某种原因,try-catch语句不起作用。我也尝试使用函数file_exist(),但是当我输入正常的图像链接时,它表示它不是有效的图像。我该如何解决这个问题?

尝试1:

if ($link and file_exists($link))
{
    echo "valid image!"
}

尝试2:

$link = $_POST['link'];
try
{
    getimagesize($link);
}
catch(Exception $e)
{
    echo "worng image! enter again link.";
}

2 个答案:

答案 0 :(得分:2)

并非PHP中的所有函数都会生成异常。其中许多内容(包括getimagesize)都会产生错误。文档将在“返回值”和“错误/例外”部分告诉您:https://secure.php.net/manual/en/function.getimagesize.php

相反,您应该检查getimagesize的返回值 - 如果它是FALSE,那么它就失败了。否则你会得到一个数组。

答案 1 :(得分:0)

建议不要将getimagesize用于此目的。这来自documentation

  

<强>注意   此函数要求filename是有效的图像文件。如果提供了非图像文件,则可能会将其错误地检测为图像,并且该函数将成功返回,但该数组可能包含无意义的值。   请勿使用getimagesize()检查给定文件是否为有效图片。使用专用解决方案,例如Fileinfo扩展名