Сохраните изображение в базе данных CMS за октябрь после изменения его размера с помощью пакета для работы с изображениями. - PullRequest
0 голосов
/ 23 октября 2018

Я пытаюсь сохранить аватар пользователя в базе данных 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()

Кто-нибудь может мне помочь, пожалуйста?!

1 Ответ

0 голосов
/ 23 октября 2018

Вы вызываете 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+'));
    /* ... */
}
...