2017-07-14 72 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 –

相关问题