partkeepr

fork of partkeepr
git clone https://git.e1e0.net/partkeepr.git
Log | Files | Refs | Submodules | README | LICENSE

commit 032041e7b97c623fb384abe6d3933c7562138c89
parent 43bd450ae2ae2def6195624e87510a5ee2c229d6
Author: Felicitus <felicitus@felicitus.org>
Date:   Sat, 31 Oct 2015 15:10:05 +0100

Check if the file was uploaded correctly, create an exception otherwise

Diffstat:
Msrc/PartKeepr/UploadedFileBundle/Controller/TemporaryFileController.php | 17+++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/src/PartKeepr/UploadedFileBundle/Controller/TemporaryFileController.php b/src/PartKeepr/UploadedFileBundle/Controller/TemporaryFileController.php @@ -8,8 +8,8 @@ use FOS\RestBundle\Controller\Annotations\View; use Nelmio\ApiDocBundle\Annotation\ApiDoc; use PartKeepr\ImageBundle\Response\TemporaryImageUploadResponse; use PartKeepr\UploadedFileBundle\Entity\TempUploadedFile; -use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\File\File; +use Symfony\Component\HttpFoundation\File\UploadedFile; use Symfony\Component\HttpFoundation\JsonResponse; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; @@ -37,6 +37,19 @@ class TemporaryFileController extends FileController if ($request->files->has('userfile') && $request->files->get('userfile') != null) { $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", + array("code" => $file->getError())); + break; + } + + throw new \Exception($error); + } /** * @var $file UploadedFile */ @@ -45,7 +58,7 @@ class TemporaryFileController extends FileController } elseif ($request->request->has("url")) { $fileService->replaceFromURL($uploadedFile, $request->request->get("url")); } else { - throw new \Exception("Error: No valid file given"); + throw new \Exception($this->get("translator")->trans("No valid file given")); } $this->getDoctrine()->getManager()->persist($uploadedFile);