使用Laravel 6不存在Illuminate \ Http \ UploadedFile :: resize方法

问题描述

我想添加一个用户名称,电子邮件,图像,多张图像...),并且我尝试调整图像和多张图像的大小以便上载非常快,我们使用程序包干预,我执行了cmd PHP composer require intervention/image ,我在Intervention\Image\ImageServiceProvider::class添加Image'=>Intervention\Image\Facades\Image::classconfig/app.PHP,在use Intervention\Image\Exception\NotReadableException;中也添加RegisterController.PHP,但仍然给我错误Method Illuminate\Http\UploadedFile::resize does not exist

它给我错误Method Illuminate\Http\UploadedFile::resize does not exist

RegisterController.PHP

protected function validator(array $data)
    {
        return Validator::make($data,[
        'name'     => ['bail','required','string','min:3','max:50','regex:/^[\pL\s\-]+$/u'],'email'    => ['bail','email','max:255','unique:users'],'telephone'=> ['bail','regex:/^06\d{8}$/','password' => ['bail','min:8','confirmed'],'adressem' => ['bail','min:13','max:255'],'adresser' => ['bail','image'    => ['bail','mimes:jpeg,jpg,png,gif,svg','max:2048'],'images.*' => ['bail','max:2048']
        ]);
    }
protected function create(array $data)
    { 
        //image
        $user = new User();
        //$jdate = Carbon::Now();
        $request = app('request');
        if($request->hasFile('image'))
         {
        $image = $request->file('image'); 
         $url = Storage::put("user/",$image->getClientOriginalName());
         $image->resize(250,125);
        
          $path = $request->image->store('profiles');
          $user->image = $path;
        }
        $im = $user->image;  
        //images
        $dataim = array();
         if($request->hasFile('images')) 
         {
            foreach($request->images as $file) 
            {   
                $file->resize(250,125);
                $path = $file->store('profiles'); 
                array_push($dataim,$path);
            } 
         }
        $user->images=json_encode($dataim);
        $imm =$user->images; 
        return User::create([
            'name'         => $data['name'],'email'        => $data['email'],'password'     => Hash::make($data['password']),'telephone'    => $data['telephone'],'country_id'   => $data['country_id'],'state_id'     => $data['state_id'],'autrei'       => $data['autrei'] ?? null,'city_id'      => $data['city_id'],'autreh'       => $data['autreh'] ?? null,'adressem'     => $data['adressem'],'adresser'     => $data['adresser'],'image'        => $im,'images'       => $imm
        ]);
    }

解决方法

遵循软件包DOC

首先,导入软件包

use Intervention\Image\Facades\Image;

然后,调整大小并保存

$image = Image::make($filename);
$image->resize(250,125,function($constraint){
     $constraint->aspectRatio();
})->save($filename);
,

我看到您的RegisterControlle没有错误。

您是否已安装干预/图像以调整图像大小?

使用撰写者需要干预/图像

还添加这些使用图片; 在RegisterController中

如果是: config / app.php

return [

    ......

    $provides => [

        ......

        ......,'Intervention\Image\ImageServiceProvider'

    ],$aliases => [

        .....

        .....,'Image' => 'Intervention\Image\Facades\Image'

    ]

]