我注意到当我尝试使用如下路径列出目录内容时,filesize不起作用:
../
例如,这有效:
if ($handle = opendir('./')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "File Name: $file | File Size: ". filesize($file)."<br />";
}
}
closedir($handle);
}
但这不是:
if ($handle = opendir('../')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "File Name: $file | File Size: ". filesize($file)."<br />";
}
}
closedir($handle);
}
在最后一个示例中,文件名列出正常但不是获取文件大小,而是出现此错误:
Warning: filesize() [function.filesize]: stat failed for dynamic.php in C:\xampp\htdocs\app_file_manager\panel\index.php on line 65
有没有办法让第二个例子起作用?
答案 0 :(得分:6)
filesize($file)
失败,因为$file
是父目录中而不是当前目录中存在的文件的名称。
您需要在$file
前加../
答案 1 :(得分:0)
为什么不定义类似$basepath
或$downloads
文件夹路径的变量,并将文件名附加到该变量并使用filesize()
。请务必避免./
和../
。
$downloads = "www/base/downloads";
$filepath = $downloads."/".$filename;
filesize($filepath)
这应该可以正常工作。
答案 2 :(得分:0)
此外,问题可能出在:
[function.filesize]: stat failed
错误最多)