Example #1
0
 /**
  * Return all files or a single file.
  *
  * @param  string $name File name to retrieve, or null to get all.
  * @param  mixed $default Default value to use when the file is missing.
  * @return array|\ArrayAccess|null
  */
 public function fromFiles($name = null, $default = null)
 {
     if ($name === null) {
         return $this->request->getFiles($name, $default)->toArray();
     }
     return $this->request->getFiles($name, $default);
 }
 /**
  * Dispatch a request
  *
  * @events dispatch.pre, dispatch.post
  * @param  Request $request
  * @param  null|Response $response
  * @return Response|mixed
  */
 public function dispatch(Request $request, Response $response = null)
 {
     $this->request = $request;
     $this->getDataResourceCreator()->setData(array_merge_recursive($this->params()->fromPost(), $request->getFiles()->toArray()));
     if (!$this->getDataResourceCreator()->isValid()) {
         if ($this->disableDefaultErrorHandler) {
             $response = $response ?: new HttpResponse();
             $this->getEventManager()->clearListeners(MvcEvent::EVENT_DISPATCH);
             $this->getEvent()->setResult(false);
             $response->setStatusCode(400);
         } else {
             $this->getEventManager()->clearListeners(MvcEvent::EVENT_DISPATCH);
             $this->uploaderModel->setMessages($this->getDataResourceCreator());
             $this->getEvent()->setResult($this->uploaderModel);
         }
     }
     parent::dispatch($request, $response);
 }
Example #3
0
 /**
  * Process post data and call create
  *
  * This method is overridden from the AbstractRestfulController to allow
  * processing of multipart POSTs.
  *
  * @param Request $request
  * @return mixed
  */
 public function processPostData(Request $request)
 {
     $contentType = $request->getHeader('content-type');
     if ($contentType->match('multipart/form-data')) {
         $content = $request->getPost('data');
         $fileData = $request->getFiles()->toArray();
     } else {
         $content = $request->getContent();
         $fileData = null;
     }
     $data = Json::decode($content, $this->jsonDecodeType);
     return $this->create($data, $fileData);
 }