为了快点,我正在为我正在使用的应用程序构建文件浏览器。当我请求filetype,filesize和filetime时,我收到以下错误。我收到以下错误:
文件类型:
Warning: filetype() [function.filetype]: Lstat failed
尺寸:
Warning: filesize() [function.filesize]: stat failed
filetime:显示文件已于01/01/1970 03:00:00 AM修改。我当然不会编辑那些文件!
无论如何,这是我的代码。我为回声的意大利面道歉!请帮忙!
<table class="tftable">
<tr><th>Name</th><th>Type</th><th>Last Modified</th><th>Size</th></tr>
<?php
if($_GET['folder'] == "")
{
$baseusrdir = "/userfiles/john";
}
else
{
$baseusrdir = "/userfiles/john/".$_GET['folder'];
}
$listdir = scandir(".".$baseusrdir);
$lstdr = $_GET['folder'];
foreach($listdir as $lstdr)
{
if($lstdr != "." && $lstdr !="..")
{
echo "<tr>";
echo "<td><a href='files.php?folder=".$_GET['folder']."/$lstdr'>".$lstdr."</a></td>";
echo "<td>";
echo $baseusrdir."/".$lstdr;
echo filetype($baseusrdir."/".$lstdr);
echo "</td><td>";
echo date ("d/m/Y h:i:s A.", filemtime($entry));
echo "</td><td>";
echo round((filesize($lstdr)/1000), 2);
echo "</td>";
echo "</tr>";
}
}
$arr = explode('/' , $_GET['folder']);
for($i=0;$i<(count($arr)-1);$i++){
if(!empty($arr[$i])){
$link.="/".$arr[$i];
}
}
echo "</br><a href='files.php?folder=$link'>back</a>";
?>
</table>
答案 0 :(得分:3)
Abhi Jain - 引用:
filetype()最常见的原因是引发此警告而不是 在输出中显示filetype()(它实际上返回NULL)是,if 你偶然传递了'目录或文件名',而不是完整的 “文件或目录”的“绝对或相对路径”。它仍然可以阅读 该文件并将其文件类型返回为“文件”,但对于Dir来说,它显示 警告并输出NULL。例如:$ pathToFile ='/ var / www'; $ file = 'test.php的'; $ dir ='somedir';
答案 1 :(得分:1)
要获取文件类型,我使用此功能:
function getFileType($file){
$path_chunks = explode("/", $file);
$thefile = $path_chunks[count($path_chunks) - 1];
$dotpos = strrpos($thefile, ".");
return strtolower(substr($thefile, $dotpos + 1));
}