PluginProbe
WPIDE – File Manager & Code Editor / 3.5.5
WPIDE – File Manager & Code Editor v3.5.5
3.5.9 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 All 55 releases
← All changes | App/Controllers/FileManager/DownloadController.php +17 -10 3.33.5.5 View file →
@@ -81,9 +81,9 @@
81 81 } catch (\Exception $e) {
82 82 return $response->redirect('/');
83 83 }
84 84
85 - $this->downloadFile($file, $request, $streamedResponse);
85 + $this->downloadFile($file, $request, $response, $streamedResponse);
86 86 }
87 87
88 88 /**
89 89 * @param $file array
@@ -90,19 +90,24 @@
90 90 * @param Request $request
91 91 * @param StreamedResponse $streamedResponse
92 92 * @return void
93 93 */
94 - public function downloadFile(array $file, Request $request, StreamedResponse $streamedResponse)
94 + public function downloadFile(array $file, Request $request, Response $response, StreamedResponse $streamedResponse)
95 95 {
96 96
97 + if($file['stream'] === false) {
98 + return $response->json('Cannot read file, please check file permissions!', 422);
99 + }
100 +
97 101 $streamedResponse->setCallback(function () use ($file) {
98 102 // @codeCoverageIgnoreStart
99 - set_time_limit(0);
103 + @set_time_limit(0);
104 +
100 105 if ($file['stream']) {
101 106 while (! feof($file['stream'])) {
102 107 echo fread($file['stream'], 1024 * 8);
103 - ob_flush();
104 - flush();
108 + @ob_flush();
109 + @flush();
105 110 }
106 111 fclose($file['stream']);
107 112 }
108 113 // @codeCoverageIgnoreEnd
@@ -211,18 +216,20 @@
211 216 {
212 217
213 218
214 219 $uniqid = (string) preg_replace('/[^0-9a-zA-Z_]/', '', (string) $request->input('uniqid'));
220 + $name = $request->input('name', $this->config->get('file.default_archive_name'));
221 +
215 222 $file = $tmpfs->readStream($uniqid);
216 223
217 224 $streamedResponse->setCallback(function () use ($file, $tmpfs, $uniqid) {
218 225 // @codeCoverageIgnoreStart
219 - set_time_limit(0);
226 + @set_time_limit(0);
220 227 if ($file['stream']) {
221 228 while (! feof($file['stream'])) {
222 229 echo fread($file['stream'], 1024 * 8);
223 - ob_flush();
224 - flush();
230 + @ob_flush();
231 + @flush();
225 232 }
226 233 fclose($file['stream']);
227 234 }
228 235 $tmpfs->remove($uniqid);
@@ -232,10 +239,10 @@
232 239 $streamedResponse->headers->set(
233 240 'Content-Disposition',
234 241 HeaderUtils::makeDisposition(
235 242 HeaderUtils::DISPOSITION_ATTACHMENT,
236 - $this->config->get('file.default_archive_name'),
237 - 'archive.zip'
243 + $name,
244 + $this->config->get('file.default_archive_name')
238 245 )
239 246 );
240 247 $streamedResponse->headers->set(
241 248 'Content-Type',