/** * @param Request $request * @return \FastD\Http\JsonResponse * @throws \Exception */ public function uploadAction(Request $request) { if ($request->files->isEmpty()) { return $this->responseJson(['msg' => 'Empty files.'], Response::HTTP_BAD_REQUEST); } $uploadedFiles = $request->getUploader(['path' => $this->getParameters('media.uploaded.path'), 'exts' => $this->getParameters('media.uploaded.exts'), 'size' => $this->getParameters('media.uploaded.size')])->uploading(); if (null == ($files = $uploadedFiles->getUploadFiles())) { return $this->responseJson(['msg' => 'Uploaded files error.']); } try { $remote = $this->getParameters('media.remote.url'); } catch (\Exception $e) { $remote = null; } try { $repository = $this->getParameters('media.provider.repository'); $connection = $this->getParameters('media.provider.connection'); $mediaRepository = $this->getConnection($connection)->getRepository($repository); } catch (\Exception $e) { $mediaRepository = null; } foreach ($files as $file) { $relativePath = str_replace(dirname($this->get('kernel')->getRootPath()) . DIRECTORY_SEPARATOR . 'public/', '', $file->getRealPath()); $thumb = $this->toThumbnail($relativePath, $this->getParameters('media.thumbnil.width'), $this->getParameters('media.thumbnil.height')); $id = $this->createNewImageRecord($mediaRepository, $file); $remoteUrl = $this->uploadRemote($request, $file, $remote); } return $this->responseJson(['id' => $id, 'url' => $this->asset($relativePath, $this->getParameters('media.resources_url')), 'thumb' => $this->asset($thumb, $this->getParameters('media.resources_url')), 'remote_url' => $remoteUrl]); }