PartKeepr\UploadedFileBundle\Controller\TemporaryFileController::uploadAction PHP Méthode

uploadAction() public méthode

Handles a temporary file upload.
public uploadAction ( Request $request ) : Symfony\Component\HttpFoundation\JsonResponse
$request Symfony\Component\HttpFoundation\Request The request to process
Résultat Symfony\Component\HttpFoundation\JsonResponse The JSON response from the temporary file upload
    public function uploadAction(Request $request)
    {
        $uploadedFile = new TempUploadedFile();
        $fileService = $this->get('partkeepr_uploadedfile_service');
        if ($request->files->has('userfile') && $request->files->get('userfile') != null) {
            /**
             * @var $file UploadedFile
             */
            $file = $request->files->get('userfile');
            if (!$file->isValid()) {
                switch ($file->getError()) {
                    case UPLOAD_ERR_INI_SIZE:
                        $error = $this->get('translator')->trans('The uploaded file is too large.');
                        break;
                    default:
                        $error = $this->get('translator')->trans('Unknown error, error code %code', ['code' => $file->getError()]);
                        break;
                }
                throw new \Exception($error);
            }
            if ($this->container->hasParameter("partkeepr.upload.limit") && $this->container->getParameter("partkeepr.upload.limit") !== false && $file->getSize() > $this->container->getParameter("partkeepr.upload.limit")) {
                throw new \Exception($this->get('translator')->trans('The uploaded file is too large.'));
            }
            /*
             * @var $file UploadedFile
             */
            $fileService->replace($uploadedFile, new File($file->getPathname()));
            $uploadedFile->setOriginalFilename($file->getClientOriginalName());
        } elseif ($request->request->has('url')) {
            $fileService->replaceFromURL($uploadedFile, $request->request->get('url'));
        } else {
            throw new \Exception($this->get('translator')->trans('No valid file given'));
        }
        $this->getDoctrine()->getManager()->persist($uploadedFile);
        $this->getDoctrine()->getManager()->flush();
        /**
         * @var ResourceInterface
         */
        list($resourceType) = $this->extractAttributes($request);
        $serializedData = $this->get('serializer')->normalize($uploadedFile, 'jsonld', $resourceType->getNormalizationContext());
        return new JsonResponse(new TemporaryImageUploadResponse($serializedData));
    }