查看代码:
<input type="file" name="queryfile" id="queryfile" required>
此处我尝试使用 .sql 扩展名上传文件。
控制器代码:
public function debinsert1(Request $request)
{
$validator = Validator::make(Input::all(),
array(
'devicemodel' => 'exists:addProduct,productId',
'debfile' => 'mimes:deb',
'basefile' => 'mimes:deb',
'versions' => 'unique:MainHaghway',
**'queryfile' => 'mimes:sql',**
));
if ($validator->fails()) {
return redirect()->back()
->withErrors($validator)
->withInput();
}
else{
$temp = new debModel;
if(Input::hasFile('queryfile')){
$file=$request->file('queryfile');
$file->move(public_path().'/downloads',$file-
>getClientOriginalName());
$temp->queryfile=$file->getClientOriginalName();
}
$temp->save();
在这个控制器代码中,我试图用sql扩展验证,如果成功则需要插入db。其他文件的验证在这里工作,但.sql文件没有通过验证。
相同的视图代码(即,如上所述):
@if (count($errors) > 0)
<div class = "alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
在这里,我正在抛出错误验证失败。
答案 0 :(得分:0)
这不会将sql文件验证为laravel MIME 类型check here,但.sql文件不具有MIME类型,说明它无法正常工作但您可以使用手动执行此操作使用php函数 pathinfo()进行检查。
就像这样
if(pathinfo($request->queryfile->getClientOriginalName(), PATHINFO_EXTENSION)!=='sql'){
echo 'invalid sql file';
}
我会帮助你。