예제 #1
0
 /**
  * Creates Symfony UploadedFile instance from PSR-7 ones.
  *
  * @param UploadedFileInterface $psrUploadedFile
  *
  * @return UploadedFile
  */
 private function createUploadedFile(UploadedFileInterface $psrUploadedFile)
 {
     $temporaryPath = $this->getTemporaryPath();
     $psrUploadedFile->moveTo($temporaryPath);
     $clientFileName = $psrUploadedFile->getClientFilename();
     return new UploadedFile($temporaryPath, null === $clientFileName ? '' : $clientFileName, $psrUploadedFile->getClientMediaType(), $psrUploadedFile->getSize(), $psrUploadedFile->getError(), true);
 }
예제 #2
0
파일: Uploader.php 프로젝트: wandu/http
 /**
  * @param \Psr\Http\Message\UploadedFileInterface $file
  * @return string
  */
 public function uploadFile(UploadedFileInterface $file)
 {
     if ($file->getError() === UploadedFile::OK) {
         $fileName = pathinfo($file->getClientFilename());
         $dir = date("ymd");
         if (!file_exists("{$this->basePath}/{$dir}")) {
             if (false === @mkdir("{$this->basePath}/{$dir}", 0777, true)) {
                 throw new RuntimeException("fail to create directory.");
             }
         }
         do {
             $newFileName = sha1($fileName['filename'] . rand());
             $newFilePath = "{$this->basePath}/{$dir}/{$newFileName}.{$fileName['extension']}";
         } while (file_exists($newFilePath));
         $file->moveTo($newFilePath);
         return "{$dir}/{$newFileName}.{$fileName['extension']}";
     }
 }
 protected function uploadFile(UploadedFileInterface $content, $mime, $filePath)
 {
     $uri = $content->getStream()->getMetadata('uri');
     if (!$uri) {
         throw new SaveResourceErrorException('Unknown error: can\'t get uploaded file uri');
     }
     $uploadedMime = $this->filesystem->getMimetype($uri);
     if ($mime !== $uploadedMime) {
         /**
          * Try to remove unnecessary file because UploadFile object can be emulated
          * @see \Staticus\Middlewares\ActionPostAbstract::download
          */
         $this->filesystem->delete($uri);
         throw new WrongRequestException('Bad request: incorrect mime-type of the uploaded file');
     }
     $content->moveTo($filePath);
 }