Я пытаюсь сохранить аватар пользователя в базе данных October CMS после изменения его размера с помощью пакета изображений вмешательства. Я использую этот код:
if (Input::hasFile('avatar')) {
$file= $user->avatar;
$filenamewithextension = $file->getClientOriginalName();
//get filename without extension
$filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);
//get file extension
$extension = $file->getClientOriginalExtension();
//filename to store
$filenametostore = $filename.'_'.uniqid().'.'.$extension;
Storage::put('public/profile_images/'. $filenametostore, fopen($file, 'r+'));
Storage::put('public/profile_images/thumbnail/'. $filenametostore, fopen($file, 'r+'));
//Resize image here
$thumbnailpath ='storage/app/public/profile_images/thumbnail/'.$filenametostore;
$img = Image::make($file->getRealPath());
$img->crop(request('w'), request('h'), request('x1'), request('y1'));
$img->save($thumbnailpath);
$user->avatar=$filenametostore;
}
но я получаю сообщение об ошибке:
Call to undefined method October\Rain\Database\QueryBuilder::getClientOriginalName()
Кто-нибудь может мне помочь?!
Вы вызываете getClientOriginalName () не для того объекта, попробуйте изменить следующие строки в коде на это:
if (Input::hasFile('avatar')) {
$file = Input::file('avatar');
/* ... */
Storage::put('public/profile_images/'. $filenametostore, fopen($file->getRealPath(), 'r+'));
Storage::put('public/profile_images/thumbnail/'. $filenametostore, fopen($file->getRealPath(), 'r+'));
/* ... */
}
спасибо, да, это решение этой ошибки, но снова возникает другая проблема: Аватар должен быть изображением