示例#1
0
 /**
  * Perform a file upload.
  * @param UploadedFile $file
  * @param $move boolean - move or copy the file?
  * @return \Exception|FileException|Media
  */
 public static function upload(UploadedFile $file, $move = true)
 {
     Media::unguard();
     $media = new Media(['file_type' => $file->getClientMimeType(), 'file_name' => $file->getClientOriginalName(), 'file_size' => $file->getSize(), 'title' => basename($file->getClientOriginalName(), "." . $file->getClientOriginalExtension())]);
     // Don't overwrite the file. Give it a new name.
     $media->file_name = Media::getUniqueName($media->path());
     try {
         if ($move) {
             $file->move(dirname($media->path()), $media->file_name);
         } else {
             copy($file->getPathname(), $media->path());
         }
     } catch (FileException $error) {
         return $error;
     }
     $media->etag = md5_file($media->path());
     $media->save();
     // Create cropped image sizes, if any specified.
     foreach (config('media.crops') as $directory => $callable) {
         $media->generate($directory, $callable);
     }
     Media::reguard();
     return $media;
 }