laravel 压缩图片 Intervention/image

韶宏邈
2023-12-01

我们使用Composer在命令行安装最新版本的Intervention Image:

composer require intervention/image

安装好Intervention Image后,打开config/app.php,注册如下服务提供者到$providers数组:

Intervention\Image\ImageServiceProvider::class

然后添加如下门面到$aliaes数组:

‘Image’ => Intervention\Image\Facades\Image::class

然后在config/filesystems.php文件中增加驱动

  'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => public_path('upload'),    // 文件将上传到public/upload   浏览器直接访问 请设置成这个
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_KEY'),
            'secret' => env('AWS_SECRET'),
            'region' => env('AWS_REGION'),
            'bucket' => env('AWS_BUCKET'),
        ],

    ],
use Image;
use Illuminate\Support\Facades\Storage;

 $fileCharater = $request->file('file');
            if ($fileCharater->isValid()) {
                $ext = $fileCharater->getClientOriginalExtension();
                //获取文件的绝对路径
                $jpg = (string) Image::make($fileCharater)->encode('jpg',90);    //这里必需写jpg  才能压缩,   后面的参数  1-100  是图片质量
                $filename = 'images/'.date('Ymd').'/'.date('YmdHis').rand(100, 999).'.'.$ext;
                Storage::disk('public')->put($filename, $jpg);    //保存图片
                return $filename;
            }

这样就实现了图片的压缩

二、laravel 图片操作
1、获取上传的文件

$file=$request->file('file');

2、获取上传文件的文件名(带后缀,如abc.png)

$filename=$file->getClientOriginalName();

3、获取上传文件的后缀(如abc.png,获取到的为png)

$fileextension=$file->getClientOriginalExtension();

4、获取上传文件的大小

$filesize=$file->getClientSize();

5、获取缓存在tmp目录下的文件名(带后缀,如php8933.tmp)

$filaname=$file->getFilename();

6、获取上传的文件缓存在tmp文件夹下的绝对路径

$realpath=$file->getRealPath();

7、将缓存在tmp目录下的文件移到某个位置,返回的是这个文件移动过后的路径

$path=$file->move(path,newname);

move()方法有两个参数,第一个参数是文件移到哪个文件夹下的路径,第二个参数是将上传的文件重新命名的文件名

8、检测上传的文件是否合法,返回值为true或false

$file->isValid()
 类似资料: