Команда (хранилище) недоступна для драйвера (Gd) с использованием laravel 6

#php #laravel #file-upload #intervention

#php #laravel #загрузка файла #вмешательство

Вопрос:

Я хочу добавить пользователя (имя, адрес электронной почты, изображение, несколько изображений …), и я попытался очень быстро изменить размер изображения и нескольких изображений для загрузки php composer require intervention/image . config/app.php , я InterventionImageImageServiceProvider::class Image'=>InterventionImageFacadesImage::class также добавил и в. use InterventionImageExceptionNotReadableException; use InterventionImageFacadesImage; RegisterController.php

но это выдает ошибку Command (Store) is not available for driver (Gd)

но это выдает ошибку Command (Store) is not available for driver (Gd)

D:wampwwwaswaktinvendorinterventionimagesrcInterventionImageAbstractDriver.php:119

RegisterController.php

 protected function validator(array $data)
    {
        return Validator::make($data, [
        'name'     => ['bail','required', 'string','min:3', 'max:50','regex:/^[pLs-] $/u'],
        'email'    => ['bail','required', 'string', 'email', 'max:255', 'unique:users'],
        'telephone'=> ['bail','required','regex:/^06d{8}$/','unique:users'],
        'password' => ['bail','required', 'string', 'min:8', 'confirmed'],
        'adressem' => ['bail','required', 'string', 'min:13','max:255'],
        'adressem' => ['bail','required', 'string', 'min:13','max:255'],
        'adresser' => ['bail','required', 'string', 'min:13','max:255'],
        'image'    => ['bail','required','mimes:jpeg,jpg,png,gif,svg','max:2048'],
        'images.*' => ['bail','required','mimes:jpeg,jpg,png,gif,svg','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 = Image::make($image);
         $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 = Image::make($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
        ]);
    }
  

Ответ №1:

Проблема в том, что вы перезаписываете экземпляр загруженного файла ( $file ) экземпляром вмешательства, но затем пытаетесь вызвать store UploadedFile метод) для этого экземпляра образа вмешательства. Вам нужно будет использовать другое имя переменной для вашего экземпляра экземпляра образа вмешательства.