如何在foreach循环中获取文件的文件大小

how to get the filesize of files in a foreach loop

我正在尝试回显目录中所有文件的文件大小,但它不回显文件大小,只回显文件名。这是我的代码:

$dir = "users/$UserName";
$files = scandir($dir);
sort($files);

echo '<table>';
foreach ($files as $file) {
if ($file != '.' && $file != '..') { 
?>

    <tr>
    <td><?php echo $file."<br />";
         ?>
    </td>
    <td>
        <?php echo filesize($file);   
        ?>
    </td>

    </tr>

<?php

}
}

我做错了什么?

scandir returns 文件名 仅不是 文件路径

您应该在 filesize($file)

中使用文件路径

AS m_poorUser 说您需要将完整的文件路径传递给 filesize() 函数,也许如果您这样做:

<?php echo filesize($dir."/".$file); ?>