php - 文件大小(): stat failed for specific path - php

标签 php filesize stat

我正在编写一个简单的文档管理脚本,需要在表格中获取文件大小和文件类型/文件或文件夹/。不知何故,它不适用于提及目录。如果可能请帮忙:

    <?php
$path = "./documents";
$dh = dir($path);
while( ($file=$dh->read()) ) 
{
    if( $file=="." || $file=="..")continue;
    echo "<tr><td><a href='download.php?f=$file' title='Click to Open/Download'>$file</a></td>";
    echo "<td>";
    echo (is_file($file))? "<img src='file.jpg'/> FILE" : "<img src='folder.jpg'/> FOLDER ";
    echo "</td><td>" .filesize($file)."</td>";
    echo "<td><input type='checkbox' name='delete[]'/></td></tr>";
}
?>

它实际上有 2 个错误 - 一个文件大小不适用于该位置,如果我将其更改为路径“。” - 一切正常,但如果我尝试更改到我需要它的文件夹/documents ... 一切都会变坏,其次 - 它也没有采用正确的图标文件,同样类型的问题。 谢谢

最佳答案

问题是,$file 只是没有目录前缀的文件名,因此无法检查它。一种方法是使用绝对文件名的变量(比如 $realfile)。然后您必须更改代码并使用此变量进行文件检查:

<?php
$path = "./documents";
$dh = dir($path);
while(($file=$dh->read()) !== false) {
    if( $file=="." || $file=="..") continue;
    // have a new variable for the real filepath
    $realfile = $path . "/" . $file;
    echo "<tr><td><a href='download.php?f=$file' title='Click to Open/Download'>$file</a></td>";
    echo "<td>";
    echo (is_file($realfile))? "<img src='file.jpg'/> FILE" : "<img src='folder.jpg'/> FOLDER ";
    echo "</td><td>" .filesize($realfile)."</td>";
    echo "<td><input type='checkbox' name='delete[]'/></td></tr>";
}
?>

关于php - 文件大小(): stat failed for specific path - php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34481697/

相关文章:

php - PHP 中的退出状态仅在从命令行运行时有用吗?

php - upload_max_filesize 设置为 1G 时无法上传超过 500MB 的文件

PHP 有什么比curl 更快的方法来检查远程图像文件大小大约3000 倍?

c - 使用 stat() 测试文件的可读性时,我是否需要测试 S_IRUSR、S_IRGRP 和 S_IROTH?

php - 从多个文件中提取数据

apache-spark - spark ORC微调(文件大小,条纹)

c# - 文件大小格式提供程序

c - 仅列出常规文件(无目录)问题

c - mingw 中的 stat() 工作不正确

php - 用表单搜索my​​sqli表并显示结果