Форумы портала PHP.SU » » Работа с файловой системой и файлами » Простенький файловый менеджер

Страниц (1): [1]
 

1. artur4ek94 - 27 Ноября, 2016 - 14:42:12 - перейти к сообщению
Доброго времени суток!
Есть скрипт php который должен принимать из формы путь к любой директории на компьютере и отображать ее содержимое(файлы и папки), а также переходить на уровень вверх и в корень.
Проблема в том что невозможно перейти в корень(например если находишся в директории C:/Windows то перейти в C:/)/ И сама загрузка папок и файлов происходит очень медленно. Помогите подправить
PHP:
скопировать код в буфер обмена
  1.  
  2. <html>
  3.         <head>
  4.                 <title>Project</title>
  5.                 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6.         </head>
  7.                
  8.         <body>
  9.                 <?PHP
  10.                        
  11.                         function getfilessize($d)
  12.                         {
  13.                                 global $filesize;
  14.                                 $filesize = 0;
  15.                                 $dir = scandir($d);
  16.                                
  17.                                                                
  18.                                 foreach($dir as $file)
  19.                                 {
  20.                                         if (($file!='.') && ($file!='..'))
  21.                                                
  22.                                                 if(is_dir($d . '/' . $file))
  23.                                                         $filesize += getfilessize($d .'/'.$file);
  24.                                                 else
  25.                                                         $filesize += filesize($d . '/' . $file);
  26.                                                
  27.                                 }
  28.                                
  29.                                 return $filesize;
  30.                         }
  31.                        
  32.                                
  33.                          function scan($p) {
  34.                          $files = scandir($p);
  35.                         foreach ($files as $file):
  36.                                 $d = $p.'/'.$file;
  37.                                 if (is_dir($d)) {
  38.                                         if (($file == '.') || ($file == '..')) {
  39.                                                 echo '<a href="'.'test.php/'.$file.'?f=scan&p='.$d.'">'.$file.'</a><br />',PHP_EOL;
  40.                                         }
  41.                                         else {
  42.                                                 $filesize = getfilessize($d);
  43.                                                 echo '<a href="'.'test.php/'.$file.'?f=scan&p='.$d.'">'.$file.'</a>'.' : '.$filesize.'<br />',PHP_EOL;
  44.                                         }
  45.                                 }
  46.                                 else {
  47.                                         echo $file .' : '. filesize($d).'Kb'.'<br>';
  48.                                         }
  49.                         endforeach;
  50.                 }
  51.                
  52.                 if(isset($_GET['f']) and $_GET['f']=='scan') {
  53.                         $p = $_GET['p'];
  54.                         scan($p);
  55.                 }
  56.                 else {
  57.                         $dir  = 'E:\local_server\openserver';
  58.                         $files = scandir($dir);
  59.                         foreach ($files as $file):
  60.                                 $d = $dir.'/'.$file;
  61.                                 if (is_dir($d)) {
  62.                                        
  63.                                         if (($file == '.') || ($file == '..')) {
  64.                                                 echo '<a href="'.'test.php/'.$file.'?f=scan&p='.$d.'">'.$file.'</a><br />',PHP_EOL;
  65.                                         }
  66.                                         else {
  67.                                                 $filesize = getfilessize($d);
  68.                                                 echo '<a href="'.'test.php/'.$file.'?f=scan&p='.$d.'">'.$file.'</a>'.$filesize.'<br />',PHP_EOL;
  69.                                         }
  70.                                 }
  71.                                 else {
  72.                                         echo $file .' : '. filesize($d).'Kb'.'<br>';
  73.                                 }
  74.                         endforeach;
  75.                 }
  76.                 ?>
  77.         </body>
  78. </html>
  79.  

 

Powered by ExBB FM 1.0 RC1