imagecreatefrompng错误 - 如何检测和处理?

Vic*_*let 3 php error-handling gd imagecreatefrompng

在我的脚本中,我有以下几行:

$test = @imagecreatefrompng($name);
if ($test) { ... }
Run Code Online (Sandbox Code Playgroud)

我确信它$name代表磁盘上的现有文件,但我必须处理该文件不是有效PNG文件的情况(由于传输错误或恶意用户).我希望通过不做任何事情来处理这些案件.

但是,鉴于上面的代码,我的PHP解释器在第一行停止,并显示以下错误消息:

imagecreatefrompng()[function.imagecreatefrompng]:'foobar.png'不是有效的PNG文件

不应该@已经抑制了此错误消息,并且false如文档中所述返回了函数吗?我怎么能告诉PHP我知道可能发生错误而不中断执行?

Mat*_*den 7

你可以mime_content_type在文件上使用.

$image = 'file.png';
if(is_file($image) && mime_content_type($image_type) == 'image/png'){
    // Image is PNG
}else{
    // Not PNG
}
Run Code Online (Sandbox Code Playgroud)

这将确保图像是文件和PNG.