如何在laravel中上传.sql类型的文件?

时间:2017-07-08 05:55:21

标签: php sql-server laravel

查看代码:

<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

在这里,我正在抛出错误验证失败。

1 个答案:

答案 0 :(得分:0)

这不会将sql文件验证为laravel MIME 类型check here,但.sql文件不具有MIME类型,说明它无法正常工作但您可以使用手动执行此操作使用php函数 pathinfo()进行检查。

就像这样

if(pathinfo($request->queryfile->getClientOriginalName(), PATHINFO_EXTENSION)!=='sql'){
    echo 'invalid sql file';
}

我会帮助你。