在 null laravel 上调用成员函数 getClientOriginalName()

新手上路,请多包涵

当我尝试上传 pdf 文档文件时,我一直收到此错误,有人知道如何解决这个问题吗?

我曾尝试寻找类似的问题,但仍然无法解决(例如: 使用 Laravel 5 上传 pdf 文件

我试着做 dd() 查看文件是否已上传,它确实显示了文件名,但错误说 Call to a member function getClientOriginalName() on null ,所以现在我对现在该做什么感到困惑.

这是我的代码,在此先感谢您的帮助。

控制器:

  class CreateController extends Controller
{
    public function create(){

    return view('create');
}
public function store(Request $request){

  $uniqueFileName = uniqid() . $request->get('upload_file')->getClientOriginalName() . '.' . $request->get('upload_file')->getClientOriginalExtension();

   $request->get('upload_file')->move(public_path('files') . $uniqueFileName);
//dd($request);
   return redirect()->back()->with('success', 'File uploaded successfully.');
}

创建.blade.php

    <form  enctype="multipart/form-data" class="form-horizontal" method="post" action="{{ url('/user')}}">

             {{  csrf_field()  }}
          <div class="form-group">
     <label for="upload_file" class="control-label col-sm-3">Upload File</label>
     <div class="col-sm-9">
          <input class="form-control" type="file" name="upload_file" id="upload_file">
     </div>
</div>

 <div class="form-group">
            <div class="col-md-6-offset-2">
              <input type="submit" class="btn btn-primary" value="Save">
            </div>
          </div>
</form>

路线:

 Route::get('/user/create','CreateController@create');
Route::post('/user','CreateController@store');

原文由 blastme 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 697
2 个回答

您需要使用 file() 函数来访问您上传的文件

$request->file('upload_file')

原文由 madalinivascu 发布,翻译遵循 CC BY-SA 3.0 许可协议

这个 enctype 解决了 null 问题上的函数调用

<form method="" action="" enctype="multipart/form-data">

原文由 Vengadesh KS 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏