我正在尝试上传图像,但每次提交时都会返回 store() 错误。我已将表单设置为 enctype="multipart/form-data" 这没有帮助。
有人能指出我正确的方向吗?
谢谢。
控制器内部的功能
public function store(Request $request){
$file = $request->file('imgUpload1')->store('images');
return back();
}
表格如下:
<form action="/imgupload" method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<label for="imgUpload1">File input</label>
<input type="file" id="imgUpload1">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
我遇到了同样的问题,我要解决的问题是在打开的表单标签中添加
enctype="multipart/form-data"
应该修复它。如果没有它,laravel 将无法理解该文件。
喜欢:
<form method="POST" enctype="multipart/form-data" name="formName">
数据总是使用表单输入中缺少的名称属性来获取
改变
<input type="file" id="imgUpload1">
到
<input type="file" id="imgUpload1" name = "imgUpload1">
并在控制器端进行一些验证,如下所示
$val = Validator:make($request->all, [
'imgUpload1' => 'required',
]);
if($val->fails()) {
return redirect()->back()->with(['message' => 'No file received']);
}
else {
$file = $request->file('imgUpload1')->store('images');
return redirect()->back();
}
您需要在控制器中添加此代码
if ($request->file('imgUpload1') == null) {
$file = "";
}else{
$file = $request->file('imgUpload1')->store('images');
}
您收到错误,因为您的商店功能没有从输入标记中看到您的请求中的文件,因此要修复此问题,请设置我在下面所做的“名称”
<form action="/imgupload" method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="form-group">
<label for="imgUpload1">File input</label>
<input type="file" id="imgUpload1" name="imgUpload1">
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
试试这个,兄弟简单的方法检查'null'
if($request->file('imgUpload1')!=null){
$file=$request->file('imgUpload1')->store('images');
}