/** * @param Application $app * @param Request $request * @return Response */ public function fileUploadAction(Application $app, Request $request) { $uploadDir = __DIR__ . '/../../../web' . $app['config']['upload_dir']; $file = new File('file', new FileSystem($uploadDir)); $file->addValidations(array(new Mimetype(array('image/png', 'image/gif', 'image/jpeg')), new Size('5M'))); // Upload file to server try { $file->setName($app['slug']->slugify($file->getName())); $file->upload(); $app['monolog']->addDebug(sprintf("File uploaded: %s", json_encode($file->getNameWithExtension()))); } catch (\Exception $exception) { $errorMessage = join('<br />', $file->getErrors()); $app['monolog']->addError(sprintf("Error during file upload: %s", $errorMessage)); return new Response(sprintf("Erreur : %s", $errorMessage), 400); } // Save file to db try { $photo = $app['photos']->add($file->getNameWithExtension()); } catch (\Exception $exception) { $app['monolog']->addError(sprintf("Error during file insertion: %s", $exception->getMessage())); // Remove file from upload dir unlink($uploadDir . $file->getNameWithExtension()); return new Response(sprintf("Erreur : %s", $exception->getMessage()), 400); } // Generate thumbnails $app['photos']->generateThumbnails($photo); return new Response($photo->id); }