3
3
namespace ctf0 \MediaManager \Controllers ;
4
4
5
5
use Exception ;
6
- use Carbon \Carbon ;
7
6
use Illuminate \Http \Request ;
8
7
use App \Http \Controllers \Controller ;
9
8
10
9
class MediaController extends Controller
11
10
{
11
+ use OpsTrait;
12
+
12
13
protected $ fileSystem ;
13
14
protected $ storageDisk ;
14
15
protected $ ignoreFiles ;
@@ -42,6 +43,45 @@ public function index()
42
43
return view ("MediaManager:: {$ this ->fw }.media " );
43
44
}
44
45
46
+ /**
47
+ * [files description].
48
+ *
49
+ * @param Request $request [description]
50
+ *
51
+ * @return [type] [description]
52
+ */
53
+ public function get_files (Request $ request )
54
+ {
55
+ $ folder = $ request ->folder !== '/ '
56
+ ? $ request ->folder
57
+ : '' ;
58
+
59
+ return response ()->json ([
60
+ 'path ' => $ folder ,
61
+ 'items ' => $ this ->getData ($ folder ),
62
+ ]);
63
+ }
64
+
65
+ /**
66
+ * [get_all_dirs description].
67
+ *
68
+ * @param Request $request [description]
69
+ *
70
+ * @return [type] [description]
71
+ */
72
+ public function get_dirs (Request $ request )
73
+ {
74
+ $ folderLocation = $ request ->folder_location ;
75
+
76
+ if (is_array ($ folderLocation )) {
77
+ $ folderLocation = rtrim (implode ('/ ' , $ folderLocation ), '/ ' );
78
+ }
79
+
80
+ return response ()->json (
81
+ str_replace ($ folderLocation , '' , $ this ->storageDisk ->allDirectories ($ folderLocation ))
82
+ );
83
+ }
84
+
45
85
/**
46
86
* [upload description].
47
87
*
@@ -95,27 +135,6 @@ public function upload(Request $request)
95
135
return response ()->json (['data ' =>$ result ]);
96
136
}
97
137
98
- /**
99
- * [files description].
100
- *
101
- * @param Request $request [description]
102
- *
103
- * @return [type] [description]
104
- */
105
- public function files (Request $ request )
106
- {
107
- $ folder = $ request ->folder ;
108
-
109
- if ($ folder == '/ ' ) {
110
- $ folder = '' ;
111
- }
112
-
113
- return response ()->json ([
114
- 'path ' => $ folder ,
115
- 'items ' => $ this ->getFiles ($ folder ),
116
- ]);
117
- }
118
-
119
138
/**
120
139
* [new_folder description].
121
140
*
@@ -139,17 +158,17 @@ public function new_folder(Request $request)
139
158
$ message = trans ('MediaManager::messages.error_creating_dir ' );
140
159
}
141
160
142
- return compact ('success ' , 'message ' , 'new_folder ' );
161
+ return compact ('success ' , 'message ' , 'new_folder_name ' , ' full_path ' );
143
162
}
144
163
145
164
/**
146
- * [delete_file_folder description].
165
+ * [delete_file description].
147
166
*
148
167
* @param Request $request [description]
149
168
*
150
169
* @return [type] [description]
151
170
*/
152
- public function delete_file_folder (Request $ request )
171
+ public function delete_file (Request $ request )
153
172
{
154
173
$ folderLocation = $ request ->folder_location ;
155
174
$ result = [];
@@ -188,26 +207,6 @@ public function delete_file_folder(Request $request)
188
207
return response ()->json (['data ' =>$ result ]);
189
208
}
190
209
191
- /**
192
- * [get_all_dirs description].
193
- *
194
- * @param Request $request [description]
195
- *
196
- * @return [type] [description]
197
- */
198
- public function get_all_dirs (Request $ request )
199
- {
200
- $ folderLocation = $ request ->folder_location ;
201
-
202
- if (is_array ($ folderLocation )) {
203
- $ folderLocation = rtrim (implode ('/ ' , $ folderLocation ), '/ ' );
204
- }
205
-
206
- return response ()->json (
207
- str_replace ($ folderLocation , '' , $ this ->storageDisk ->allDirectories ($ folderLocation ))
208
- );
209
- }
210
-
211
210
/**
212
211
* [move_file description].
213
212
*
@@ -225,13 +224,15 @@ public function move_file(Request $request)
225
224
}
226
225
227
226
foreach ($ request ->moved_files as $ one ) {
228
- $ file_type =$ one ['type ' ];
227
+ $ file_type = $ one ['type ' ];
229
228
$ file_name = $ one ['name ' ];
229
+ $ file_size = $ one ['size ' ];
230
+
230
231
$ destination = "{$ request ->destination }/ $ file_name " ;
231
232
$ file_name = "$ folderLocation/ $ file_name " ;
232
233
$ destination = strpos ($ destination , '../ ' ) == true
233
- ? '/ ' . dirname ($ folderLocation ) . '/ ' . str_replace ('../ ' , '' , $ destination )
234
- : "$ folderLocation/ $ destination " ;
234
+ ? '/ ' . dirname ($ folderLocation ) . '/ ' . str_replace ('../ ' , '' , $ destination )
235
+ : "$ folderLocation/ $ destination " ;
235
236
236
237
try {
237
238
if (!file_exists ($ destination )) {
@@ -240,6 +241,7 @@ public function move_file(Request $request)
240
241
'success ' => true ,
241
242
'name ' => $ one ['name ' ],
242
243
'type ' => $ file_type ,
244
+ 'size ' => $ file_size ,
243
245
];
244
246
} else {
245
247
throw new Exception (trans ('MediaManager::messages.error_moving ' ));
@@ -289,80 +291,4 @@ public function rename_file(Request $request)
289
291
290
292
return compact ('success ' , 'message ' , 'new_filename ' );
291
293
}
292
-
293
- /**
294
- * [getFiles description].
295
- *
296
- * @param [type] $dir [description]
297
- *
298
- * @return [type] [description]
299
- */
300
- public function getFiles ($ dir )
301
- {
302
- $ files = [];
303
- $ storageFiles = $ this ->storageDisk ->files ($ dir );
304
- $ storageFolders = $ this ->storageDisk ->directories ($ dir );
305
-
306
- $ pattern = $ this ->ignoreFiles ;
307
-
308
- foreach ($ storageFolders as $ folder ) {
309
- if (!preg_grep ($ pattern , [$ folder ])) {
310
- $ time = $ this ->storageDisk ->lastModified ($ folder );
311
- $ files [] = [
312
- 'name ' => strpos ($ folder , '/ ' ) > 1 ? str_replace ('/ ' , '' , strrchr ($ folder , '/ ' )) : $ folder ,
313
- 'type ' => 'folder ' ,
314
- 'path ' => $ this ->storageDisk ->url ($ folder ),
315
- 'size ' => '' ,
316
- 'items ' => count ($ this ->storageDisk ->allFiles ($ folder )) + count ($ this ->storageDisk ->allDirectories ($ folder )),
317
- 'last_modified ' => $ time ,
318
- 'last_modified_formated ' => Carbon::createFromTimestamp ($ time )->{$ this ->LMF }(),
319
- ];
320
- }
321
- }
322
-
323
- foreach ($ storageFiles as $ file ) {
324
- if (!preg_grep ($ pattern , [$ file ])) {
325
- $ time = $ this ->storageDisk ->lastModified ($ file );
326
- $ files [] = [
327
- 'name ' => strpos ($ file , '/ ' ) > 1 ? str_replace ('/ ' , '' , strrchr ($ file , '/ ' )) : $ file ,
328
- 'type ' => $ this ->storageDisk ->mimeType ($ file ),
329
- 'path ' => $ this ->storageDisk ->url ($ file ),
330
- 'size ' => $ this ->storageDisk ->size ($ file ),
331
- 'last_modified ' => $ time ,
332
- 'last_modified_formated ' => Carbon::createFromTimestamp ($ time )->{$ this ->LMF }(),
333
- ];
334
- }
335
- }
336
-
337
- return $ files ;
338
- }
339
-
340
- /**
341
- * sanitize input.
342
- *
343
- * @param [type] $text [description]
344
- * @param null|mixed $folder
345
- *
346
- * @return [type] [description]
347
- */
348
- protected function cleanName ($ text , $ folder = null )
349
- {
350
- $ pattern = [
351
- '/(script.*?\/script)|[^( ' . $ this ->fileChars . ')a-zA-Z0-9]+/ius ' ,
352
- ];
353
-
354
- if ($ folder ) {
355
- $ pattern = [
356
- '/(script.*?\/script)|[^( ' . $ this ->folderChars . ')a-zA-Z0-9]+/ius ' ,
357
- ];
358
- }
359
-
360
- $ text = preg_replace ($ pattern , '' , $ text );
361
-
362
- if ($ text == '' ) {
363
- $ text = $ this ->sanitizedText ;
364
- }
365
-
366
- return $ text ;
367
- }
368
294
}
0 commit comments