来自filetype,filesize和filetime的警告

时间:2014-01-13 21:07:27

标签: php html

为了快点,我正在为我正在使用的应用程序构建文件浏览器。当我请求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>

2 个答案:

答案 0 :(得分:3)

Abhi Jain - 引用:

  

filetype()最常见的原因是引发此警告而不是   在输出中显示filetype()(它实际上返回NULL)是,if   你偶然传递了'目录或文件名',而不是完整的   “文件或目录”的“绝对或相对路径”。它仍然可以阅读   该文件并将其文件类型返回为“文件”,但对于Dir来说,它显示   警告并输出NULL。例如:$ pathToFile ='/ var / www'; $ file =   'test.php的'; $ dir ='somedir';

http://php.net/manual/en/function.filetype.php - 参见考试

答案 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));
}