2017-12-06 13 views
1

이것은 내 데이터베이스에 파일을 업로드하는 방법이지만 업로드 된 파일 형식이나 형식이 잘못된 경우 예외를 처리 할 수 ​​없습니다.처리 파일 업로드 예외 - Laravel

파일이 업로드되지 않았지만 파일 유형이 유효하지 않거나 표준을 충족하지 않는 경우 예외를 처리 할 수 ​​있습니다.

어떻게해야합니까?

컨트롤러 내가 업로드가

public function import($id, Request $request) 
    { 


     $country= Country::all()->where('id',$id)->first(); 


      if($request->file('imported-file')) 
      { 
        $path = $request->file('imported-file')->getRealPath(); 
        $data = Excel::load($path, function($reader) 
       { 
        })->get(); 

       if(!empty($data) && $data->count()) 
       { 
       foreach ($data->toArray() as $row) 
       { 
        if(!empty($row)) 
        { 
        $dataArray[] = 
        [ 
         'name' => $row['name'], 

        ]; 
        } 
    else { 
      return redirect('admin')->with('error','File format Error'); 

     } 
       } 

       if(!empty($dataArray)) 
       { 
       $country->teams()->createMany($dataArray);  
       return redirect('admin')->with('status','Countries successfully added'); 

       } 
       } 
      } 
else { 
      return redirect('admin')->with('error','No file was uploaded'); 

     } 

     } 
+0

잘못된 유형은 무엇입니까? –

+0

업로드 파일은 무엇입니까? – kunal

+0

@SapneshNaik, Excel 파일을 업로드합니다. 그래서 사용자가 다른 형식을 업로드 할 때 예외 파일을 처리해야합니다. – pogba

답변

0

내 프로젝트 중 하나에 파일을 엑셀. 이 의지가 당신을 도움이되기를 바랍니다 : -

$file = Input::file('imported-file'); 
Excel::load($file ,function($reader){ 
        $reader->each(function($sheet){ 
         YourMOdelName::firstOrCreate($sheet->toArray()); 
        }); 
       }); 

YourModelName는 당신이 얻을 수있는이 방법에서이 경우에 사용자 ..... 을 정의 할 필요가 귀하의 테이블 이름은 테이블이 사용자 인 경우 가정이다 업로드 파일의 확장 : -

$ext= Input::file('imported-file')->getClientOriginalExtension(); 
echo $ext; //print the extension here 

희망이 있습니다! Laravel's documentation에서

1

, 당신은 마임 유효성 검사 규칙을 사용하여 파일의 특정 유형을 받아 들일 수

 'file' => 'required | mimes:application/vnd.ms-excel', 

마임 타입 application/vnd.ms-excel 좋아 내가 아주이 해결 xls xlm xla xlc xlt xlw

0

이러한 파일 확장명을 일치합니다 간단한 방법은 laravel 문서를 확인하는 것입니다. 그래서 여기에 방금 추가 한 내용이 있습니다

if(($request->file('imported-file')->getClientOriginalExtension() != 'xls, xlm, xla ,xlc, xlt, xlw')) 
     { 

     }  
else { 

    //process the file 

} 
+0

확인할 방법 엑셀이나 다른 포맷이라면? – kunal

+0

@kunal 대답 – pogba

+0

나중에 괜찮아요 ... 나는 또한 당신 에게이 솔루션을 제공했습니다 (y) 내 대답을 참조하십시오 @pogba – kunal