php
如下的代码,如何改成按文件名排序。下面的页面 list.php是可以列出c:\filelist里的文件,可以需要用文件名来排序,另外,想多加一个动作叫Open,是在浏览器打开文件,不是下载。谢谢!
error_reporting(0);
$basedir = "c:/filelist";
if(!is_dir($basedir)) $basedir = dirname(__FILE__);
$file_name = $_GET['downfile'];
if(!empty($file_name)){
$file_dir = $basedir . "/" . $file_name;
if(dirname(realpath($file_dir))
echo "Permission Denied!";
exit;
}
if (!file_exists($file_dir)) {
echo "File Not Found!";
exit;
} else {
$file = fopen($file_dir,"r");
Header("Content-type: application/octet-stream");
Header("Accept-Ranges: bytes");
Header("Accept-Length: ".filesize($file_dir));
Header("Content-Disposition: attachment; filename=" . $file_name);
echo fread($file,filesize($file_dir));
fclose($file);
exit;
}
}
header("Content-type: text/html; charset=utf-8");
$requestDir = $_GET['dir'];
if(empty($requestDir)){
$dir = $basedir;
}else{
$dir = $basedir . "/" . $requestDir;
}
$dir = realpath($dir);
if($dir ?>
File Listing
$predir = realpath($dir . "/../"); if($predir > $basedir) $predir = str_replace($basedir . "/","",$predir); if($predir == $basedir) $predir = "."; if($dir > $basedir) echo "Up Level"; ?> |
$dirs=@opendir($dir);
$count = 0;
while($file=@readdir($dirs)) {
$b="$dir/$file";
$a=@is_dir($b);
if($a=="1"){
if($file!=".."&&$file!=".") {
if($count
$count ++;
echo "\n";
echo "Folder | \n";
echo "
\n";
}
echo "\n";
echo " $basedir ? str_replace($basedir . "/",'',$dir . "/") : '') . urlencode($file)."\">$file | \n";
echo "
\n";
}
}
}
@closedir($dirs);
?>
Filename |
Date |
Size |
Action |
$dirs=@opendir($dir);
while ($file=@readdir($dirs)) {
$b="$dir/$file";
$a=@is_dir($b);
if($a=="0"){
$size=@filesize("$dir/$file");
$size=$size/1024 ;
$size= @number_format($size,2);
$lastsave=@date("Y-n-d H:i:s",filemtime("$dir/$file"));
echo "\n";
echo "$file | \n";
echo "$lastsave | \n";
echo "$size KB | \n";
echo " $basedir ? str_replace($basedir . "/",'',$dir . "/") : '').urlencode($file)."\">Download | \n";
echo "
\n";
}
}
@closedir($dirs);
?>
回复讨论(解决方案)
不用目录函数,改用 glob 函数。结果就是排序的
当然你也可以附加 GLOB_NOSORT 参数阻止这一行为
请问该改哪里? 如何改呢? 谢谢!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn