Yab\Quarx\Services\FileService::saveFile PHP Method

saveFile() public static method

Saves File.
public static saveFile ( string $fileName, $directory = '', $fileTypes = [] ) : array
$fileName string File input name
return array
    public static function saveFile($fileName, $directory = '', $fileTypes = [])
    {
        if (is_object($fileName)) {
            $file = $fileName;
            $originalName = $file->getClientOriginalName();
        } else {
            $file = Request::file($fileName);
            $originalName = false;
        }
        if (is_null($file)) {
            return false;
        }
        if (File::size($file) > Config::get('quarx.maxFileUploadSize', '')) {
            throw new Exception('This file is too large', 1);
        }
        if (substr($directory, 0, -1) != '/') {
            $directory .= '/';
        }
        $extension = $file->getClientOriginalExtension();
        $newFileName = md5(rand(1111, 9999) . time());
        // In case we don't want that file type
        if (!empty($fileTypes)) {
            if (!in_array($extension, $fileTypes)) {
                throw new Exception('Incorrect file type', 1);
            }
        }
        Storage::disk(Config::get('quarx.storage-location', 'local'))->put($directory . $newFileName . '.' . $extension, File::get($file));
        return ['original' => $originalName ?: $file->getFilename() . '.' . $extension, 'name' => $directory . $newFileName . '.' . $extension];
    }

Usage Example

コード例 #1
0
ファイル: FileRepository.php プロジェクト: YABhq/Quarx
 /**
  * Updates Files into database.
  *
  * @param Files $files
  * @param array $input
  *
  * @return Files
  */
 public function update($files, $input)
 {
     if (isset($input['location'])) {
         $savedFile = FileService::saveFile($input['location'], 'files/');
         $_file = $input['location'];
         $fileInput = $input;
         $fileInput['name'] = $savedFile['original'];
         $fileInput['location'] = $savedFile['name'];
         $fileInput['mime'] = $_file->getClientMimeType();
         $fileInput['size'] = $_file->getClientSize();
     } else {
         $fileInput = $input;
     }
     $fileInput['is_published'] = isset($input['is_published']) ? (bool) $input['is_published'] : 0;
     return $files->update($fileInput);
 }
All Usage Examples Of Yab\Quarx\Services\FileService::saveFile