【发布时间】:2013-12-12 09:10:30
【问题描述】:
我目前正在使用 Wordpress,听起来很简单,我正在尝试检查图像是否在目录中,如果没有,那么它将显示标准的无图像。
我的问题是 file_exists 返回 false 尽管其中的 url 是正确的,并且可以通过浏览器访问,所以这不是权限问题,也许我做错了,这是代码;
$img = 'no_img.jpg';
if($val->has_prop('user_image')){
$img_tmp = $val->get( 'user_image' );
if(file_exists($upload_dir['baseurl'].'/users/'.$img_tmp)){
$img = $val->get( 'user_image' );
}
}
如果我执行var_dump($upload_dir['baseurl'].'/users/'.$img_tmp);,它将显示文件的确切直接 URL,而且它是正确的,但是当它进入 file_exists 时,它返回 $img = 'no_img.jpg',尽管该文件存在于目录中.... 什么我做错了吗??
我也尝试在file_exists 之前添加clearstatcache();,但也没有用。
有什么想法吗?
【问题讨论】:
-
file_exists适用于文件路径,而不是 url。 -
“直接 URI”实际上是相对的还是绝对的?您可能假设了错误的 工作目录
-
你应该尝试使用getimagesize。
-
@Liza,不,文件完整路径的 url 将类似于
/home/user/workspace/folder/users/imp.png或C://path/to/folder/img.png如果您使用 Windows -
@Liza 您必须使用路径,而不是 URI,例如
wp-content/uploads/users/file.jpg如果您从 WP 根目录使用 file_exists