-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathfiles.php
58 lines (51 loc) · 1.47 KB
/
files.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<?php
$configs = include('config.php');
$dir = $pathRoot.$_POST['path']; //active folder
$typeSort = $_POST['sort'];// modifiedDate | name
$orderBy = $_POST['order'];// asc | desc
foreach(explode('/', $dir) as $partURL){ //check url
if($partURL == ".."){
echo 'Error of path((';
return;
}
}
$listFiles = scandir($dir);
$listFiles = preg_grep('/^[^.].+/', $listFiles);
switch($typeSort){
case 'modifiedDate':
foreach($listFiles as $file){
$listFilesWithTime[$file] = filemtime($dir.'/'.$file);
}
if($orderBy == "asc"){
asort($listFilesWithTime, SORT_NUMERIC);
}else{
arsort($listFilesWithTime, SORT_NUMERIC);
}
break;
case 'name':
default:
foreach($listFiles as $file){
$listFilesWithTime[$file] = $file;
}
if($orderBy == "asc"){
asort($listFilesWithTime);
}else{
arsort($listFilesWithTime);
}
break;
}
if($dir != $pathRoot){
$dirUrl = substr($_POST['path'], 0, strripos($_POST['path'], "/"));
echo '<li class="list-group-item list-group-item-action" data-directory="'.$dirUrl.'">..</li>';
}
foreach(array_keys($listFilesWithTime) as $file){
if(is_dir($dir.'/'.$file)){
echo '<li class="list-group-item list-group-item-action" data-directory="'.$_POST['path'].'/'.$file.'">'.$file.'</li>';
}
}
foreach($listFilesWithTime as $file => $time){
if (preg_match('~\.(mp3|wav|wma|aac|flac|m4a|mp4)$~', $file)) {
echo '<li class="list-group-item list-group-item-action" data-path="'.$dir.'/'.$file.'" data-time="'.$time.'">'.$file.'</li>';
}
}
?>