如下的代碼,如何改成按檔案名稱排序

來源:互聯網
上載者:User
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)) < $basedir){

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 < $basedir) $dir = $basedir;
?>



File Listing














File Listing

Sign Out






























































$dirs=@opendir($dir); $count = 0; while($file=@readdir($dirs)) { $b="$dir/$file"; $a=@is_dir($b); if($a=="1"){ if($file!=".."&&$file!=".") { if($count < 1){ $count ++; echo " \n"; echo " \n"; echo " \n"; } echo " \n"; echo " \n"; echo " \n"; } } } @closedir($dirs); ?>

$predir = realpath($dir . "/../");

if($predir > $basedir) $predir = str_replace($basedir . "/","",$predir);

if($predir == $basedir) $predir = ".";

if($dir > $basedir) echo "Up Level";

?>

Folder
$basedir ? str_replace($basedir . "/",'',$dir . "/") : '') . urlencode($file)."\">$file

























































$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 " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; } } @closedir($dirs); ?>
Filename Date Size Action
$file$lastsave$size KB $basedir ? str_replace($basedir . "/",'',$dir . "/") : '').urlencode($file)."\">Download



回複討論(解決方案)

不用目錄函式,改用 glob 函數。結果就是排序的
當然你也可以附加 GLOB_NOSORT 參數阻止這一行為

請問該改哪裡? 如何改呢? 謝謝!

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.