getimagesize返回数组甚至文件都不存在

时间:2016-07-01 09:38:05

标签: php getimagesize

我有用户ID的图片(例如 img299 等)。此图片已放置在名为 images 的文件夹中。当用户登录时,我使用用户ID创建图像名称,如 img299 299 是用户ID)。

创建图像名称后,我需要在 images 文件夹中检查此图像名称是否已存在。如果图像存在,我想显示该图像,如果不只是显示下划线。

所以,我尝试这样:

$filename = "img".$userID;
$filepath = "http://www.example.com/images/".$filename.".gif";

var_dump(getimagesize($filepath));//for testing

if(getimagesize($filepath)) {
    echo "<img src = 'http://www.example.com/images/".$filename.".gif'>";                              
} else {
    echo "____________________________";
}

如果图像存在,则上述代码有效。但问题是,如果图像文件夹下不存在图像, getimagesize 会像这样返回:

getimagesize return array

因此,结果为true,该行 echo&#34; http://www.example.com/images/"。$ filename。&#34; .gif&#39;&gt; ;&#34 ;; 是工作,图像无法正确显示。

这对我来说是个问题。如果图像不存在,我想只显示下划线。

所以,我也尝试使用 if(file_exists($ filepath)),即使图像存在,它也总是返回false。

如何检查图像是否存在。我将不胜感激任何建议。

1 个答案:

答案 0 :(得分:1)

将PHP的file_exists文件的本地路径一起使用,以检查它是否存在。即不要使用完整的URL(example.com / ...),而是使用文件系统相对于您正在执行的文件的路径(例如../images/filename.png)。