laravel中null的getClientOriginalName

时间:2019-11-09 08:49:55

标签: laravel

我尝试在数据库中插入图像文件数据。但是它不起作用。错误消息是null上的getClientOriginalName()。

我的控制器是:

public function storeProduct(Request $request) {  
  $ProductImg=$request->file('ProductImg');
  $Name=$ProductImg->getClientOriginalName();
  $uploadPath='public/ProductImg/';
  $ProductImg->move($uploadPath,$Name);
  $imageUrl=$uploadPath.$Name;
  $this->saveProductinfo($request, $imageUrl);
  return redirect('/product/add')->with('message','Product info save Successfully');
}

请问该如何解决?

3 个答案:

答案 0 :(得分:0)

错误指出$ProductImgnull。这意味着该请求不包含文件对象。尝试$request->file('ProductImg')->isValid()检查文件是否已上传。我想您会在这里得到False

答案 1 :(得分:0)

操作前需要检查文件

if ($request->hasFile('ProductImg')) {
    // your code here
}

重要!您需要在下一个attr表单中使用-enctype =“ multipart / form-data”

<form name="my_form" action="/upload" method="POST" enctype="multipart/form-data">

答案 2 :(得分:0)

使用

  

enctype =“ multipart / form-data”

像这样在您的表单中添加属性。

<form name="add_form" action="/add" method="POST" enctype="multipart/form-data">