2017-08-07 48 views
0

我想上传laravel中的文件。在Laravel中上传文件时出错:调用成员函数null

我在控制器中使用此代码:

function store1(Request $request){ 
    $file=$request->file('myfile'); 
    $folder=$request->file('folder'); 
    $link=$request->input('link'); 

    $filename1 = $file->getClientOriginalName(); 
    $filename2 = $folder->getClientOriginalName(); 

    //$projectname 
    $path="files/"; 
    $file->move($path,$filename1); 
    $folder->move($path,$filename2); 

    DB::table('groups')->update(['last_report'=>$filename1,'DropBox'=>$filename2]); 

    return view('successfulUpload'); 
} 

我想使用户能上传多个文件,但它显示了呼叫到空的成员函数getClientOriginalName()

+0

尝试的var_dump($文件,$文件夹),并让我们知道了什么是有 – Sletheren

+0

似乎没有文件上传那里。你是否在表单中添加了'enctype =“multipart/form-data”'? –

+0

我已经为多个上下文在myform – Cassy

回答

0

试试这个在Laravel上传多次。

HTML表单:

<form method="post" action="controller/function" enctype="multipart/form-data"> 
    <input type="file" name="files[]" multiple /> 
    <input type="submit" /> 
</form> 

在你的控制器:

 // get posted input file 
     $files = Input::file('files'); 
     $errors = ""; 
     $file_data = array(); 

     foreach($files as $file) 
     { 

      if(Input::hasFile('files')) 
      { 
       // validating each file. 
       $rules = array('file' => 'required'); //'required|mimes:png,gif,jpeg,txt,pdf,doc' 
       $validator = Validator::make(

        [ 
         'file' => $file, 
         'extension' => Str::lower($file->getClientOriginalExtension()), 
        ], 
        [ 
         'file' => 'required|max:100000', 
         'extension' => 'required|in:jpg,jpeg,bmp,png,doc,docx,zip,rar,pdf,rtf,xlsx,xls,txt' 
        ] 
       ); 

       if($validator->passes()) 
       { 

       // path is root/uploads 
       $destinationPath = 'path/to/upload'; 
       $filename = $file->getClientOriginalName(); 

       $upload_success = $file->move($destinationPath, $filename); 

       if($upload_success) 
       { 

        //do after success .... 

       } 
       else 
       { 
        $errors .= json('error', 400); 
       } 


       } 
       else 
       { 
       // redirect back with errors. 
       return Redirect::back()->withErrors($validator); 
       } 
      } 

     } 
相关问题