检查文件夹中的文件是否存在然后检查它的filesize()

时间:2016-04-05 23:24:17

标签: php

我将附件图像以其完整路径存储在我的数据库中:即在附件列中,将描绘如下数据:

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。

该文件确实存在,但我不明白为什么打印错误?

2 个答案:

答案 0 :(得分:0)

我建议您使用is_file()而不是file_exists()作为案例

PHP is_file manual

我认为你的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';
}