我现在正在使用Wordpress,就像它的声音一样简单我试图检查目录中是否有图像,否则它将显示标准的无图像。
我的问题是file_exists
返回false虽然其中的url是正确的,并且可以通过浏览器访问,因此它不是权限问题,也许我做错了,这是代码; < / p>
$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);
它将显示文件的确切直接网址,并且它是正确的,但是当它进入file_exists
时它会返回$img = 'no_img.jpg'
,尽管该文件存在于目录....我做错了什么?
我还尝试在clearstatcache();
之前添加file_exists
,但也不起作用。
有什么想法吗?
答案 0 :(得分:3)
尝试使用:
if( getimagesize($upload_dir['baseurl'].'/users/'.$img_tmp) !== false ){
$img = $val->get( 'user_image' );
}
else {
$img = $val->get( 'no_image' );
}
另请参阅文档getimagesize
答案 1 :(得分:1)
或者如评论中所述,尝试嗤之以鼻:
if (@file_get_contents($upload_dir['baseurl'].'/users/'.$img_tmp, null, null, 0, 1)) {
//ok
}
答案 2 :(得分:1)
你可以使用
$fullPath=$upload_dir['baseurl'].'/users/'.$img_tmp;
if(@fopen($fullPath,"r")){
........
}
答案 3 :(得分:1)
如果您使用 $ upload_dir = wp_upload_dir(); 来确定,则需要使用$ upload_dir [' basedir ']而不是 baseurl WP安装的上传路径。
或者您可以使用 file_get_contents,cURL或fopen 来监听网址是否存在。