/** * 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); }
/** * 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); }