我正在尝试验证laravel中的上传文件。
该文件仅接受 xlsx,xls and csv
我有我的控制器的工作代码
public function project_import_excel(Request $request){
$validator = Validator::make($request->all(), [
'file' => 'required|max:5000|mimes:xlsx,xls,csv'
]);
$modal = "active";
if($validator->passes()){
return redirect()
->back()
->with(['success'=>'File uploaded successfully!'])
->with('modal',$modal);
}else{
return redirect()
->back()
->with(['errors'=>$validator->errors()->all()])
->with('modal',$modal);
}
}
我errors and success
在blade
文件中有这个会议
@if(session('errors'))
<div class="alert alert-danger" role="alert">
@foreach($errors as $error)
<li>{{$error}}</li>
@endforeach
</div>
<hr>
@elseif(session('success'))
<div class="alert alert-success" role="alert">
{{ session('success') }}
</div>
<hr>
@endif
如果我尝试上传.jpeg
或其他任何不是的文件xlsx, xls, or csv
这会给我一条信息
但是如果我上传一个类似
成功消息不想显示。我有什么问题if else
吗?
问题是,它总是会导致 session('errors')
更新我试图删除此mimes:xlsx,xls,csv
和session('success')
工作正常。但是,如何验证哪些文件可以接受?
我的HTML
代码form
<div class="modal fade" id="bulkProjMod" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<!--Header-->
<div class="modal-header">
<h4 class="modal-title" id="myModalLabel">Upload Projects List</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<!--Body-->
<div class="modal-body">
<div class="container">
@include('main.projectlistRedirectBack')
<p class="note note-success">
<strong>Note upload:</strong>
You are trying to upload multiple project records that containas multiple task records. This record will be useful to any transaction
<br>
*format : <b><em>xlsx,xls,csv</em></b><br>
</p>
<form action="{{ url('/projectlist/project_import_excel') }}" method="POST" enctype="multipart/form-data">
{{ csrf_field() }}
<div class="file-field">
<div class="btn-sm float-left">
<span>Choose file</span>
<input type="file" name="file" id="file">
</div>
</div>
</div>
</div>
<!--Footer-->
<div class="modal-footer">
<button type="button" class="btn btn-outline-success" data-dismiss="modal">Close</button>
<button type="submit" name="submitImport" class="btn btn-success waves-effect" id="upBulkSubmit">Upload</button>
</form>
</div>
</div>
</div>
</div>
尝试过这个 dd($validator);
@porloscerros提供的链接
这个答案,解决了我的问题!
$validator = Validator::make(
[
'file' => $request->file,
'extension' => strtolower($request->file->getClientOriginalExtension()),
],
[
'file' => 'required|max:5000',
'extension' => 'required|in:,csv,xlsx,xls',
]
);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句