示例#1
0
 /**
  * Save file to folder.
  *
  * @author Casper Rasmussen <*****@*****.**>
  *
  * @param  \Symfony\Component\HttpFoundation\File\UploadedFile $uploadedFile
  * @param  \Nodes\Assets\Upload\Settings                       $settings
  *
  * @return string
  * @throws \Nodes\Assets\Upload\Exceptions\AssetsUploadFailedException
  */
 protected function store(UploadedFile $uploadedFile, Settings $settings)
 {
     // Fallback folder is none is set
     if (!$settings->hasFolder()) {
         $settings->setFolder('default');
     }
     try {
         // Retrieve folder path
         $path = public_path(config('nodes.assets.providers.publicFolder.subFolder')) . DIRECTORY_SEPARATOR . $settings->getFolder();
         // If folder doesn't exists,
         // we'll create it with global permissions
         if (!file_exists($path)) {
             mkdir($path, 0777, true);
         }
         // Stream uploaded file
         $content = file_get_contents($uploadedFile->getPathname());
         // Save uploaded file to folder
         $result = file_put_contents($path . DIRECTORY_SEPARATOR . $settings->getFileName() . '.' . $settings->getFileExtension(), $content);
         if (!$result) {
             throw new NodesException('Failed to save', 500);
         }
     } catch (Exception $e) {
         throw new AssetsUploadFailedException('Could not save the file to public folder. Reason: ' . $e->getMessage());
     }
     return $settings->getFilePath();
 }
示例#2
0
 /**
  * Retrieve path.
  *
  * @author Casper Rasmussen <*****@*****.**>
  *
  * @param  \Symfony\Component\HttpFoundation\File\UploadedFile $uploadedFile
  * @param  \Nodes\Assets\Upload\Settings                       $settings
  *
  * @return string
  */
 private function getPath(UploadedFile $uploadedFile, Settings $settings)
 {
     return env('APP_NAME') . DIRECTORY_SEPARATOR . $this->getSubFolder($uploadedFile) . DIRECTORY_SEPARATOR . $settings->getFolder();
 }