Exemplo n.º 1
0
 /**
  * Zpracování uploadu souboru.
  */
 public function handleUpload()
 {
     $files = $this->request->getFiles();
     $token = $this->request->getPost("token");
     /** @var \Nette\Http\FileUpload $file */
     $file = $files[$this->uploadControl->getHtmlName()];
     $model = $this->uploadControl->getUploadModel();
     $cache = $this->uploadControl->getCache();
     $filter = $this->getFilter();
     try {
         if (!is_null($filter) && !$filter->checkType($file)) {
             throw new \Zet\FileUpload\InvalidFileException($this->getFilter()->getAllowedTypes());
         }
         if ($file->isOk()) {
             $returnData = $model->save($file);
             $cacheFiles = $cache->load($this->uploadControl->getTokenizedCacheName($token));
             if (empty($cacheFiles)) {
                 $cacheFiles = array($this->request->getPost("id") => $returnData);
             } else {
                 $cacheFiles[$this->request->getPost("id")] = $returnData;
             }
             $cache->save($this->uploadControl->getTokenizedCacheName($token), $cacheFiles);
         }
     } catch (\Zet\FileUpload\InvalidFileException $e) {
         $this->presenter->sendResponse(new \Nette\Application\Responses\JsonResponse(array("id" => $this->request->getPost("id"), "error" => 100, "errorMessage" => $e->getMessage())));
     } catch (\Exception $e) {
         $this->presenter->sendResponse(new \Nette\Application\Responses\JsonResponse(array("id" => $this->request->getPost("id"), "error" => 99, "errorMessage" => $e->getMessage())));
     }
     $this->presenter->sendResponse(new \Nette\Application\Responses\JsonResponse(array("id" => $this->request->getPost("id"), "error" => $file->getError())));
 }
Exemplo n.º 2
0
 /**
  * @param NULL|string $dir
  * @return SplFileInfo[]
  */
 public function filesToDir($dir = NULL)
 {
     $uploadedFiles = [];
     $this->onQueueBegin($this->httpRequest->getFiles());
     foreach ($this->httpRequest->getFiles() as $file) {
         if (is_array($file)) {
             foreach ($file as $f) {
                 try {
                     $uploadedFiles[] = $this->singleFileToDir($f, $dir);
                 } catch (UploadErrorException $e) {
                     $this->onError($f, $e);
                 }
             }
         } else {
             try {
                 $uploadedFiles[] = $this->singleFileToDir($file, $dir);
             } catch (UploadErrorException $e) {
                 $this->onError($file, $e);
             }
         }
     }
     $this->onQueueComplete($this->httpRequest->getFiles(), $uploadedFiles);
     return $uploadedFiles;
 }
Exemplo n.º 3
0
 public function getFiles()
 {
     return $this->request->getFiles();
 }
Exemplo n.º 4
0
 /**
  * Creates Nette Application request
  * @return \Nette\Application\Request
  */
 public function createApplicationRequest()
 {
     list($presenter, $action) = $this->getDestination();
     $data = $this->getData($presenter . ':' . $action);
     return new \Nette\Application\Request($this->module . ":" . $presenter, $this->httpRequest->getMethod(), array_merge(['action' => $action], $data), $this->httpRequest->getPost(), $this->httpRequest->getFiles(), array(\Nette\Application\Request::SECURED => $this->httpRequest->isSecured()));
 }