PluginProbe
WPIDE – File Manager & Code Editor / 3.4.1
WPIDE – File Manager & Code Editor v3.4.1
3.5.8 3.5.7 2.0.14 2.0.15 2.0.16 2.0.2 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1 2.2 2.3 2.3.1 2.3.2 2.4.0 2.5 2.6 3.0 3.1 3.2 3.3 3.4 All 54 releases
← All changes | App/Controllers/FileManager/ImageController.php +9 -157 3.23.4.1 View file →
@@ -1,161 +1,13 @@
1 1 <?php
2 2
3 3 namespace WPIDE\App\Controllers\FileManager;
4 4
5 -use WPIDE\App\App;
6 -use WPIDE\App\Config\Config;
7 -use WPIDE\App\Helpers\ImageStateData;
8 -use WPIDE\App\Kernel\Request;
9 -use WPIDE\App\Kernel\Response;
10 -use WPIDE\App\Kernel\StreamedResponse;
11 -use WPIDE\App\Services\Auth\AuthInterface;
12 -use WPIDE\App\Services\Storage\Filesystem;
13 -
14 -/**
15 - *
16 - */
17 -class ImageController
18 -{
19 - /**
20 - * @var AuthInterface
21 - */
22 - protected $auth;
23 -
24 - /**
25 - * @var Mixed
26 - */
27 - protected $user;
28 -
29 - /**
30 - * @var Config
31 - */
32 - protected $config;
33 -
34 - /**
35 - * @var Filesystem
36 - */
37 - protected $storage;
38 -
39 - /**
40 - * @param Config $config
41 - * @param AuthInterface $auth
42 - * @param Filesystem $storage
43 - */
44 - public function __construct(Config $config, AuthInterface $auth, Filesystem $storage)
45 - {
46 - $this->config = $config;
47 - $this->auth = $auth;
48 -
49 - $this->user = $this->auth->user() ?: $this->auth->getGuest();
50 -
51 - $this->storage = $storage;
52 - $this->storage->setPathPrefix($this->user->getHomeDir());
53 - }
54 -
55 - /**
56 - * @param Request $request
57 - * @param Response $response
58 - * @return void
59 - */
60 - public function stateExists(Request $request, Response $response)
61 - {
62 -
63 - $id = $request->input('id');
64 -
65 - $exists = ImageStateData::stateFileExists($id);
66 -
67 - return $response->json([
68 - 'exists' => $exists
69 - ]);
70 -
71 - }
72 -
73 - /**
74 - * @param Request $request
75 - * @param Response $response
76 - * @return void
77 - */
78 - public function getState(Request $request, Response $response)
79 - {
80 -
81 - $id = $request->input('id');
82 -
83 - $state = null;
84 -
85 - try {
86 - $file = ImageStateData::getState($id);
87 - $state = $file['contents'];
88 - } catch (\Exception $e) {}
89 -
90 - $response->json([
91 - 'state' => json_decode($state)
92 - ]);
93 -
94 - }
95 -
96 - /**
97 - * @param Request $request
98 - * @param Response $response
99 - * @param StreamedResponse $streamedResponse
100 - * @return void
101 - */
102 - public function download(Request $request, Response $response, StreamedResponse $streamedResponse)
103 - {
104 -
105 - $id = $request->input('id');
106 - $originalPath = $request->input('path');
107 - $ext = $request->input('ext');
108 - $stateImageName = $id.'.'.$ext;
109 -
110 - // if not, get state image file
111 -
112 - try {
113 - $file = ImageStateData::getImage($stateImageName);
114 - } catch (\Exception $e) {}
115 -
116 - // if not found, get original file
117 - if(empty($file)) {
118 - try {
119 - // if not, get original image
120 - $file = $this->storage->readStream((string) base64_decode($originalPath));
121 - } catch (\Exception $e) {}
122 - }
123 -
124 - if(empty($file)) {
125 - return $response->redirect('/');
126 - }
127 -
128 - return App::instance()->call([DownloadController::class, 'downloadFile'], [$file, $request, $streamedResponse]);
129 -
130 - }
131 -
132 - /**
133 - * @param Request $request
134 - * @param Response $response
135 - * @return void
136 - */
137 - public function revert(Request $request, Response $response)
138 - {
139 -
140 - $item = $request->input('item');
141 - $stateImageName = $item->id.'.'.$item->ext;
142 -
143 - try {
144 -
145 - $file = ImageStateData::getImage($stateImageName);
146 - $this->storage->storeStream($item->dir, $item->name, $file['stream'], true);
147 - ImageStateData::deleteState($item->id);
148 -
149 - } catch (\Exception $e) {
150 -
151 - return $response->json([
152 - 'success' => false
153 - ]);
154 - }
155 -
156 - $response->json([
157 - 'success' => true
158 - ]);
159 - }
160 -
161 -}
5 +use WPIDE\App\Classes\Freemius ;
6 +use WPIDE\App\App ;
7 +use WPIDE\App\Config\Config ;
8 +use WPIDE\App\Helpers\ImageStateData ;
9 +use WPIDE\App\Kernel\Request ;
10 +use WPIDE\App\Kernel\Response ;
11 +use WPIDE\App\Kernel\StreamedResponse ;
12 +use WPIDE\App\Services\Auth\AuthInterface ;
13 +use WPIDE\App\Services\Storage\Filesystem ;