2017-09-26 105 views
0

我正在尝试检查用户输入的链接是否为有效图像。我试图通过使用函数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."; 
} 
+1

在你的'if'子句中添加'isset'检查,而不仅仅是'$ link';所以'if(isset($ link)...)' – Samuel

回答

2

不在PHP所有功能产生异常。其中很多,包括getimagesize,都会产生错误。该文件会告诉你在“返回值”和“错误/例外”部分:https://secure.php.net/manual/en/function.getimagesize.php

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