2
2
3
3
namespace Webkul \Admin \Http \Controllers ;
4
4
5
+ use Illuminate \Http \JsonResponse ;
6
+ use Illuminate \Http \UploadedFile ;
5
7
use Illuminate \Support \Facades \Storage ;
8
+ use Webkul \Core \Traits \Sanitizer ;
6
9
7
10
class TinyMCEController extends Controller
8
11
{
12
+ use Sanitizer;
13
+
9
14
/**
10
15
* Storage folder path.
11
- *
12
- * @var string
13
16
*/
14
- private $ storagePath = 'tinymce ' ;
17
+ private string $ storagePath = 'tinymce ' ;
15
18
16
19
/**
17
20
* Upload file from tinymce.
18
- *
19
- * @return void
20
21
*/
21
- public function upload ()
22
+ public function upload (): JsonResponse
22
23
{
23
24
$ media = $ this ->storeMedia ();
24
25
@@ -33,18 +34,28 @@ public function upload()
33
34
34
35
/**
35
36
* Store media.
36
- *
37
- * @return array
38
37
*/
39
- public function storeMedia ()
38
+ public function storeMedia (): array
40
39
{
41
40
if (! request ()->hasFile ('file ' )) {
42
41
return [];
43
42
}
44
43
44
+ $ file = request ()->file ('file ' );
45
+
46
+ if (! $ file instanceof UploadedFile) {
47
+ return [];
48
+ }
49
+
50
+ $ filename = md5 ($ file ->getClientOriginalName ().time ()).'. ' .$ file ->getClientOriginalExtension ();
51
+
52
+ $ path = $ file ->storeAs ($ this ->storagePath , $ filename );
53
+
54
+ $ this ->sanitizeSVG ($ path , $ file );
55
+
45
56
return [
46
- 'file ' => $ path = request ()-> file ( ' file ' )-> store ( $ this -> storagePath ) ,
47
- 'file_name ' => request ()-> file ( ' file ' ) ->getClientOriginalName (),
57
+ 'file ' => $ path ,
58
+ 'file_name ' => $ file ->getClientOriginalName (),
48
59
'file_url ' => Storage::url ($ path ),
49
60
];
50
61
}
0 commit comments