![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ts.corals.io/corals-api/Corals/core/Elfinder/ |
<?php namespace Corals\Elfinder; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\StreamedResponse; /** * Extended elFinder connector * * @author Dmitry (dio) Levashov **/ class Connector extends \elFinderConnector { /** @var Response */ protected $response; /** * @return Response */ public function getResponse() { return $this->response; } /** * Output json * * @param array data to output * @return void * @author Dmitry (dio) Levashov **/ protected function output(array $data) { $header = isset($data['header']) ? $data['header'] : $this->header; unset($data['header']); $headers = array(); if ($header) { foreach ((array)$header as $headerString) { if (strpos($headerString, ':') !== false) { list($key, $value) = explode(':', $headerString, 2); $headers[$key] = $value; } } } if (isset($data['pointer'])) { $this->response = new StreamedResponse(function () use ($data) { if (stream_get_meta_data($data['pointer'])['seekable']) { rewind($data['pointer']); } fpassthru($data['pointer']); if (!empty($data['volume'])) { $data['volume']->close($data['pointer'], $data['info']['hash']); } }, 200, $headers); } else { if (!empty($data['raw']) && !empty($data['error'])) { $this->response = new JsonResponse($data['error'], 500); } else { $this->response = new JsonResponse($data, 200, $headers); } } } }