#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
метод) для этого экземпляра образа вмешательства. Вам нужно будет использовать другое имя переменной для вашего экземпляра экземпляра образа вмешательства.