Beispiel #1
0
 public function run(ServerRequestInterface $request, ResponseBuilder $responseBuilder) : ResponseInterface
 {
     try {
         /** @var UploadedFile $file */
         $file = $request->getUploadedFiles()["file"];
         $filename = $file->getClientFilename();
         if (!strlen($filename)) {
             $filename = GenerateRandomString::gen(self::AUTO_GENERATE_FILE_NAME_LENGTH);
         }
         if ($file->getError() !== 0) {
             throw new FileNotUploadedException('Failed to upload file');
         }
         $entity = $this->attachmentService->uploadAttachment($file->getStream()->getMetadata('uri'), $filename);
         $responseBuilder->setStatusSuccess()->setJson(['entity' => $entity->toJSON()]);
     } catch (FileTooBigException $e) {
         $responseBuilder->setStatus(409)->setError($e);
     } catch (FileTooSmallException $e) {
         $responseBuilder->setStatus(409)->setError($e);
     } catch (AttachmentFactoryException $e) {
         $responseBuilder->setStatusBadRequest()->setError($e);
     }
     return $responseBuilder->build();
 }