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/DownloadController.php +12 -20 3.13.4.1 View file →
@@ -2,15 +2,13 @@
2 2
3 3 namespace WPIDE\App\Controllers\FileManager;
4 4
5 5 use WPIDE\App\Config\Config;
6 -use WPIDE\App\Helpers\ImageStateData;
7 6 use WPIDE\App\Kernel\Request;
8 7 use WPIDE\App\Kernel\Response;
9 8 use WPIDE\App\Kernel\StreamedResponse;
10 9 use WPIDE\App\Services\Archiver\ArchiverInterface;
11 10 use WPIDE\App\Services\Auth\AuthInterface;
12 -use WPIDE\App\Services\Session\SessionStorageInterface as Session;
13 11 use WPIDE\App\Services\Storage\Filesystem;
14 12 use WPIDE\App\Services\Tmpfs\TmpfsInterface;
15 13 use Symfony\Component\HttpFoundation\HeaderUtils;
16 14 use Symfony\Component\Mime\MimeTypes;
@@ -30,13 +28,8 @@
30 28 */
31 29 protected $user;
32 30
33 31 /**
34 - * @var Session
35 - */
36 - protected $session;
37 -
38 - /**
39 32 * @var Config
40 33 */
41 34 protected $config;
42 35
@@ -45,16 +38,19 @@
45 38 */
46 39 protected $storage;
47 40
48 41 /**
42 + * @var
43 + */
44 + protected $separator;
45 +
46 + /**
49 47 * @param Config $config
50 - * @param Session $session
51 48 * @param AuthInterface $auth
52 49 * @param Filesystem $storage
53 50 */
54 - public function __construct(Config $config, Session $session, AuthInterface $auth, Filesystem $storage)
51 + public function __construct(Config $config, AuthInterface $auth, Filesystem $storage)
55 52 {
56 - $this->session = $session;
57 53 $this->config = $config;
58 54 $this->auth = $auth;
59 55
60 56 $this->user = $this->auth->user() ?: $this->auth->getGuest();
@@ -60,8 +56,10 @@
60 56 $this->user = $this->auth->user() ?: $this->auth->getGuest();
61 57
62 58 $this->storage = $storage;
63 59 $this->storage->setPathPrefix($this->user->getHomeDir());
60 +
61 + $this->separator = $this->storage->getSeparator();
64 62 }
65 63
66 64 /**
67 65 * @param Request $request
@@ -152,11 +150,8 @@
152 150 );
153 151 }
154 152 // @codeCoverageIgnoreEnd
155 153
156 - // close session, so we can continue streaming, note: dev is single-threaded
157 - $this->session->save();
158 -
159 154 $streamedResponse->send();
160 155 }
161 156
162 157 /**
@@ -180,11 +175,8 @@
180 175 $uniqid = $request->input('uniqid');
181 176 $archiver->setArchive($this->storage, $uniqid);
182 177 }
183 178
184 - // close session
185 - $this->session->save();
186 -
187 179 foreach ($items as $item) {
188 180 if ($item->type == 'dir') {
189 181 if($recursive) {
190 182 $archiver->addDirectoryFromStorage($item->path, $destination);
@@ -219,8 +211,10 @@
219 211 {
220 212
221 213
222 214 $uniqid = (string) preg_replace('/[^0-9a-zA-Z_]/', '', (string) $request->input('uniqid'));
215 + $name = $request->input('name', $this->config->get('file.default_archive_name'));
216 +
223 217 $file = $tmpfs->readStream($uniqid);
224 218
225 219 $streamedResponse->setCallback(function () use ($file, $tmpfs, $uniqid) {
226 220 // @codeCoverageIgnoreStart
@@ -240,10 +234,10 @@
240 234 $streamedResponse->headers->set(
241 235 'Content-Disposition',
242 236 HeaderUtils::makeDisposition(
243 237 HeaderUtils::DISPOSITION_ATTACHMENT,
244 - $this->config->get('file.default_archive_name'),
245 - 'archive.zip'
238 + $name,
239 + $this->config->get('file.default_archive_name')
246 240 )
247 241 );
248 242 $streamedResponse->headers->set(
249 243 'Content-Type',
@@ -258,10 +252,8 @@
258 252 'Content-Length',
259 253 $file['filesize']
260 254 );
261 255 }
262 - // close session, so we can continue streaming, note: dev is single-threaded
263 - $this->session->save();
264 256
265 257 $streamedResponse->send();
266 258 }
267 259