2017-07-14 35 views
0

如何上傳輸入文件在不同的文件夾,我需要使用開關的情況下做出不同的文件夾中的每個輸入文件,這樣做的代碼,但是當我執行它沒有發生,我想知道在哪裏的問題laravel使用開關的情況下上傳文件

我看來

{!! Form::file('file1', null,['class'=>'form-control']) !!} 
{!! Form::file('file2', null,['class'=>'form-control']) !!} 
{!! Form::file('file3', null,['class'=>'form-control']) !!} 
{!! Form::file('file4', null,['class'=>'form-control']) !!} 

我CONTROLER

$model = new Files($request->all()); 
     switch ($model) { 
      case "file1": 
       if ($request->hasFile('file1')) { 
        $file = $request->file('file1'); 
        $destinationPath = public_path() . '/file1'; 
        $filename = $file->getClientOriginalName(); 
        $file->move($destinationPath, $filename); 
        $request['file1'] = $filename; 
        $model -> file1 = $filename; 
        $model->save(); 
       } 
       break; 
      case "file2": 
       if ($request->hasFile('file2')) { 
        $file = $request->file('file2'); 
        $destinationPath = public_path() . '/file2'; 
        $filename = $file->getClientOriginalName(); 
        $file->move($destinationPath, $filename); 
        $request['file2'] = $filename; 
        $model->file2 = $filename; 
        $model->save(); 
       } 
       break; 
       case "file3": 
       if ($request->hasFile('file3')) { 
        $file = $request->file('file3'); 
        $destinationPath = public_path() . '/file3'; 
        $filename = $file->getClientOriginalName(); 
        $file->move($destinationPath, $filename); 
        $request['file3'] = $filename; 
        $model->file3 = $filename; 
        $model->save(); 
       } 
        break; 
      case "file4": 
       if ($request->hasFile('file4')) { 
        $file = $request->file('file4'); 
        $destinationPath = public_path() . '/file4'; 
        $filename = $file->getClientOriginalName(); 
        $file->move($destinationPath, $filename); 
        $request['file4'] = $filename; 
        $model->file4 = $filename; 
        $model->save(); 
       } 
       break; 
     } 
+0

如果DD($模型)它返回什麼?此外,當你做一個開關就會使情況相匹配的第一個後停止,所以如果你想要做多,你需要做的輸入一個foreach和運行它們通過交換機 – rchatburn

+0

你能顯示代碼爲模型? –

+0

這看起來像可疑的https://stackoverflow.com/questions/45075572/laravel-upload-files-in-many-inputs/45075789#45075789 –

回答

0

嗯是的,我不得不做這樣的事情,但我用它foreach升之後,再輸入if

這是我的示例代碼中,我希望它能夠幫助:-D

$requests = $request->all(); 
$model = new File; 
foreach ($requests as $key => $val) { 
    if ($key == 'file1' && !empty($val)) { 

     $destinationPath = public_path() . '/file1'; 
     $filename = $val->getClientOriginalName(); 
     $val->move($destinationPath, $filename); 
     $model -> file1 = $filename; 
     $model->save(); 
    } 
    if ($key == 'file2' && !empty($val)) { 

     $destinationPath = public_path() . '/file2'; 
     $filename = $val->getClientOriginalName(); 
     $val->move($destinationPath, $filename); 
     $model -> file1 = $filename; 
     $model->save(); 
    } 
    // And do it again as much as you need :D 
} 

在這裏,你走了,我希望它可以幫助你的好朋友:d

+0

感謝工作很不錯,從你 – mark

+0

啊哈很高興能夠幫助你:d –