Вызов функции-члена move() в нулевой Laravel при существовании файла

#php #laravel #file-upload

#php #laravel #загрузка файла

Вопрос:

Я получил ошибку с

Вызов функции-члена move() при нулевом значении в $request->file-> move(‘хранилище/’. $filename);

  $application = new Application;
        if($request->file('proposal')){
            $file=$request->file('proposal');
            $filename=time().'.'.$file->getClientOriginalExtension();
            $request->file->move('storage/'. $filename);

            $application->file= $filename;
        }

  

Комментарии:

1. вы только что получили файл из запроса с помощью $file = $request->file(...) … используйте $file->move(...) not $request->file->move(...) , который будет искать входные данные с именем file в запросе

2. спасибо, что разъяснили это. Я следовал руководству и удивляюсь, почему я не получаю тот же результат. Спасибо

Ответ №1:

Попробуйте это

 $application = new Application;
    if($request->file('proposal')){
        $file=$request->file('proposal');
        $filename=time().'.'.$file->getClientOriginalExtension();
        $file->move('storage/'. $filename);

        $application->file= $filename;
    }
  

Вы отправляете файл запроса в $file veriable и используете этот veriable для другой операции.

Ответ №2:

hashName()-> преобразовать имя файла в случайный хэш я думаю, что это лучший способ хранить файлы в laravel

 $application = new Application;
if($request->proposal):
     request('proposal')->hashName();
     request('proposal')->store('your path');
endif;