App\Http\Controllers\EditorController::fileUpload PHP Method

fileUpload() public method

file upload
public fileUpload ( Request $request, EditorHandler $handler, Storage $storage, MediaManager $mediaManager, string $instanceId ) : Xpressengine\Presenter\RendererInterface
$request Xpressengine\Http\Request request
$handler Xpressengine\Editor\EditorHandler editor handler
$storage Xpressengine\Storage\Storage storage
$mediaManager Xpressengine\Media\MediaManager media manager
$instanceId string instance id
return Xpressengine\Presenter\RendererInterface
    public function fileUpload(Request $request, EditorHandler $handler, Storage $storage, MediaManager $mediaManager, $instanceId)
    {
        $uploadedFile = null;
        if ($request->file('file') !== null) {
            $uploadedFile = $request->file('file');
        } elseif ($request->file('image') !== null) {
            $uploadedFile = $request->file('image');
        }
        if ($uploadedFile === null) {
            throw new InvalidArgumentException();
        }
        $config = $handler->get($instanceId)->getConfig();
        if (!$config->get('uploadActive') || Gate::denies('upload', new Instance($handler->getPermKey($instanceId)))) {
            throw new AccessDeniedHttpException();
        }
        if ($config->get('fileMaxSize') * 1024 * 1024 < $uploadedFile->getSize()) {
            throw new HttpException(Response::HTTP_REQUEST_ENTITY_TOO_LARGE, xe_trans('xe::msgMaxFileSize', ['fileMaxSize' => $config->get('fileMaxSize'), 'uploadFileName' => $uploadedFile->getClientOriginalName()]));
        }
        $extensions = array_map(function ($v) {
            return trim($v);
        }, explode(',', $config->get('extensions', '')));
        if (array_search('*', $extensions) === false && !in_array(strtolower($uploadedFile->getClientOriginalExtension()), $extensions)) {
            throw new HttpException(Response::HTTP_NOT_ACCEPTABLE, xe_trans('xe::msgAvailableUploadingFiles', ['extensions' => $config->get('extensions'), 'uploadFileName' => $uploadedFile->getClientOriginalName()]));
        }
        $file = $storage->upload($uploadedFile, EditorHandler::FILE_UPLOAD_PATH);
        $media = null;
        $thumbnails = null;
        if ($mediaManager->is($file) === true) {
            $media = $mediaManager->make($file);
            $thumbnails = $mediaManager->createThumbnails($media, EditorHandler::THUMBNAIL_TYPE);
            $media = $media->toArray();
            if (!empty($thumbnails)) {
                $info['thumbnails'] = $thumbnails;
            }
        }
        return XePresenter::makeApi(['file' => $file->toArray(), 'media' => $media, 'thumbnails' => $thumbnails]);
    }