сохранить аватар в базе данных octobercms после того, как я его изменил - PullRequest
0 голосов
/ 24 октября 2018

после изменения размера аватара пользователя с изображением вмешательства, я пытаюсь сохранить его в базе данных octobercms, как этот код:

        if (Input::hasFile('avatar')) {


    $file= Input::file('avatar');

  $filenamewithextension =   $file->getClientOriginalName();


   //get filename without extension
           $filename = pathinfo($filenamewithextension, PATHINFO_FILENAME);


  //get file extension
      $extension = $file->getClientOriginalExtension();


   //filename to store
           $filenametostore = $filename.'_'.time().'.'.$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;


        }

я получаю эту ошибку:

The avatar must be an image.
C:\wamp643\www\october3\vendor\october\rain\src\Database\Traits\Validation.php line 340

я действительноне знаю что делать, я новичок.

пожалуйста, помогите мне !!

1 Ответ

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

вы просто устанавливаете имя файла, вам следует указать полный путь к изображению.

Предполагая, что у вас уже есть avatar отношение вложений в пользовательской модели

public $attachOne = [
    'avatar' => ['System\Models\File']
];

заменить

$user->avatar = $filenametostore;

на

$user->avatar = storage_path($thumbnailpath);

, возможно, это должно работать.

если сомневаетесь, пожалуйста, прокомментируйте.

...