小编Idi*_*ssi的帖子

laravel - 调整图像大小并保存到 Amazon S3

当用户上传他的个人资料图片时,我想为这张图片创建 3 个不同尺寸的版本,然后将所有内容上传到亚马逊 s3。

我使用图像干预包来调整图像大小,这是我目前的代码。

public function store(Request $request){

    if($request->has('avatar')){

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

        $filename = md5(time()).'_'.$avatar->getClientOriginalName();

        $normal = Image::make($avatar)->resize(160, 160);

        $medium = Image::make($avatar)->resize(80, 80);

        $small = Image::make($avatar)->resize(40, 40);

        Storage::disk('s3')->put('/users/'.Auth::user()->uuid.'/avatars/normal/'.$filename, fopen($normal, 'r+'), 'public');

        Storage::disk('s3')->put('/users/'.Auth::user()->uuid.'/avatars/medium/'.$filename, fopen($medium, 'r+'), 'public');

        Storage::disk('s3')->put('/users/'.Auth::user()->uuid.'/avatars/small/'.$filename, fopen($small, 'r+'), 'public');

        $user = User::findorFail(Auth::user()->id);
        $user->avatar = $filename;
        $user->save();

        return redirect()->back();
    }

}
Run Code Online (Sandbox Code Playgroud)

当我尝试提交文件时,出现此错误。

fopen(): Filename cannot be empty
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏

amazon-s3 laravel intervention

5
推荐指数
1
解决办法
3941
查看次数

标签 统计

amazon-s3 ×1

intervention ×1

laravel ×1