Laravel возвращает «Вызов функции-члена getClientOriginalExtension () on string» - PullRequest
0 голосов
/ 01 октября 2018

Я пытаюсь загрузить изображение через форму Laravel, но получаю это сообщение об ошибке

Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
Call to a member function getClientOriginalExtension() on string

Мой код

//photo.blade.php
{{ Form::file('photo', null, array('class' => 'form-control')) }}

//controller.php
$image      = Input::get('photo');
            $fileName   = $user->id . '.' . $image->getClientOriginalExtension();

            $img = Image::make($image->getRealPath());
            $img->resize(500, 500, function ($constraint) {
                $constraint->aspectRatio();                 
            });

            $img->stream();
            Storage::disk('local')->put('images/'.$fileName, $img, 'public');

Ответы [ 3 ]

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

Вы должны использовать

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

или

$file = $request->file('photo');

Поскольку

Input::get('photo');

возвращает имя файла, а не объект файла.

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

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

$image = Input::file('photo');

или из объекта запроса.

request()->file('photo');

также, как сказал @Forkule, убедитесь, что ваша форма имеет атрибут enctype="multipart/form-data".

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

используйте enctype="multipart/form-data" в вашей форме.

Как этот <form method="post" action="giveaction" enctype="multipart/form-data">

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...