PHP - 如果 file_exists 不适用于图像
PHP - if file_exists not working for image
是的,尽管这应该很简单,但我就是无法使这段代码正常工作。
我正在尝试检查用户头像图像是否存在,如果不存在,请改用默认头像。现在,即使图像存在并且文件名、路径、拼写、格式等都是正确的,file_exists()
总是 returns false
声称该文件不存在。
<?php
$avatar = 'http://'.$_SERVER['SERVER_NAME'].'/ihg/dist/img/user'.$_SESSION['ID'].'-128x128.jpg';
$default = 'http://'.$_SERVER['SERVER_NAME']."/ihg/dist/img/user_default.jpg";
if (!file_exists($avatar)) {
echo "<img src=\"$default\" class=\"user-image\" alt=\"User Image\">";
} else {
echo "<img src=\"$avatar\" class=\"user-image\" alt=\"User Image\">";
}
?>
这是服务器端问题还是代码错误?
编辑:
我也尝试使用 $_SERVER['DOCUMENT_ROOT'] 变量和绝对路径,但没有结果。
file_exists()
接受文件路径而不是 URL.
要根据 URL 确定图像是否存在,您需要改为检查响应类型。
由于这些是本地资源,您只需要从使用 URL 切换到完整的服务器文件路径即可。 ($avatar = '/path/to/root/...
)
是的,尽管这应该很简单,但我就是无法使这段代码正常工作。
我正在尝试检查用户头像图像是否存在,如果不存在,请改用默认头像。现在,即使图像存在并且文件名、路径、拼写、格式等都是正确的,file_exists()
总是 returns false
声称该文件不存在。
<?php
$avatar = 'http://'.$_SERVER['SERVER_NAME'].'/ihg/dist/img/user'.$_SESSION['ID'].'-128x128.jpg';
$default = 'http://'.$_SERVER['SERVER_NAME']."/ihg/dist/img/user_default.jpg";
if (!file_exists($avatar)) {
echo "<img src=\"$default\" class=\"user-image\" alt=\"User Image\">";
} else {
echo "<img src=\"$avatar\" class=\"user-image\" alt=\"User Image\">";
}
?>
这是服务器端问题还是代码错误?
编辑: 我也尝试使用 $_SERVER['DOCUMENT_ROOT'] 变量和绝对路径,但没有结果。
file_exists()
接受文件路径而不是 URL.
要根据 URL 确定图像是否存在,您需要改为检查响应类型。
由于这些是本地资源,您只需要从使用 URL 切换到完整的服务器文件路径即可。 ($avatar = '/path/to/root/...
)