我将附件图像以其完整路径存储在我的数据库中:即在附件列中,将描绘如下数据:
A
图像存储在user_data> attached_files>图像在这里。
我要做的是从数据库中获取图像名称,检查operator=
文件夹中是否存在图像名称,然后检查其大小。
我当然必须获得我已经完成的user_data/attached_files/conor-mcgregor.jpg
图像:
attached_files
如果我回显basename
我得到$get_msg = mysqli_fetch_assoc($get_messages);
$img_url = $get_msg['attachment'];
$file = $img_url;
$arrPathInfo = pathinfo($file);
$shortened_url = $arrPathInfo['basename'];
,这是有效的,$shortened_url
文件夹中存在该名称的图像。但是当我运行此测试时,要查看文件是否存在,它将返回false:
conor-mcgregor.jpg
所以,如果文件存在attached_files
,那么(现在)返回true,但最终我会if (file_exists($shortened_url)) {
echo "true";
} else {
echo "false";
}
。如果它不存在,则返回false。
该文件确实存在,但我不明白为什么打印错误?
答案 0 :(得分:0)
我建议您使用is_file()
而不是file_exists()
作为案例
我认为你的php脚本位于你网站的根文件夹中,然后检查子文件夹中存在的文件应该是这样的:
$fpath = "user_data/attached_files/{$shortened_url}";
if (file_exists($fpath)) {
echo "true";
// echo filesize($fpath);
} else {
echo "false";
}
答案 1 :(得分:0)
// you need to include the path from the file the php is executed
$shortened_url = 'user_data/attached_files/'.$arrPathInfo['basename'];
if (file_exists($shortened_url)) {
echo filesize($shortened_url).' bytes';
} else {
echo 'no file';
}