-
Notifications
You must be signed in to change notification settings - Fork 0
/
zfmsvr.php
113 lines (107 loc) · 2.39 KB
/
zfmsvr.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<?php
include "config.php";
include "kits.php";
$disk_config = new DISK_CONFIG();
$data = file_get_contents("php://input");
$objData = json_decode($data);
if (isset($objData->bm)) {
$objData->bm = intval($objData->bm);
} else {
$objData->bm = 0;
}
function getSpace($dir) {
$free = disk_free_space($dir);
$total = disk_total_space($dir);
return array(
"dir" => $dir,
"total" => $total,
"free" => $free,
"used" => $total - $free,
"htotal" => human_filesize($total),
"hfree" => human_filesize($free),
"hused" => human_filesize($total - $free)
);
}
function getList($dir) {
return scandir($dir);
}
switch ($objData->rq) {
case 'dirs':
echo json_encode(array(
$objData->rq => $disk_config->dirs
));
break;
case 'rename':
$oldname = $disk_config->dirs[$objData->bm]["path"] . "/" . $objData->oldname;
$newname = $disk_config->dirs[$objData->bm]["path"] . "/" . $objData->newname;
if (rename($oldname, $newname)) {
$err_rename = "";
} else {
$err_rename = "failed";
}
echo json_encode(array(
$objData->rq => array(
"error" => $err_rename
)
));
break;
case 'remove':
$err_remove = "";
if (!empty($objData->delname)) {
$delname = $disk_config->dirs[$objData->bm]["path"] . "/" . $objData->delname;
if (is_file($delname) || is_link($delname)) {
if (unlink($delname)) {
$err_remove = "";
} else {
$err_remove = "failed";
}
} else if (is_dir($delname)){
if (delTree($delname)) {
$err_remove = "";
} else {
$err_remove = "failed";
}
} else {
}
}
echo json_encode(array(
$objData->rq => array(
"error" => $err_remove
)
));
break;
case 'list':
$dst_dir = $disk_config->dirs[$objData->bm]["path"] . "/" . $objData->dir;
$dir_list = dir_list($dst_dir);
$dir_list[] = array(
'id' => 0,
'name' => '..',
'size' => '-',
'hsize' => '-',
'perm' => '-',
'type' => 'dir',
'type_name' => 'dir_..',
'time' => '-'
);
echo json_encode(array(
$objData->rq => array(
"files" => $dir_list,
"space" => getSpace($disk_config->dirs[$objData->bm]["path"])
)
));
break;
case 'all':
echo json_encode(array(
$objData->rq => array(
"allfiles" => dir_list($disk_config->dirs[$objData->bm]["path"]),
"space" => getSpace($disk_config->dirs[$objData->bm]["path"])
)
));
break;
default:
echo json_encode(array(
$objData->rq => "N/A"
));
break;
}
?>