Laravel 5.1:如何从三个不同的文件输入字段上传多个文件? [英] Laravel 5.1: How to upload multiple files from three different file input fields?
本文介绍了Laravel 5.1:如何从三个不同的文件输入字段上传多个文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个表格,用户至少应该选择一个文件上传。我有三个像这样的文件输入字段:
I have a form in which user should at least select one file to be uploaded. I have three file input fields like this:
<div class="form-group col-lg-4">
{!! Form::label('file1', 'Select file 1', ['class' => 'control-label']) !!}
{!! Form::file('files[]', ['id'=>'file1']) !!}
</div>
<div class="form-group col-lg-4">
{!! Form::label('file2', 'Select file 2', ['class' => 'control-label']) !!}
{!! Form::file('files[]', ['id'=>'file2']) !!}
</div>
<div class="form-group col-lg-4">
{!! Form::label('file3', 'Select file 3', ['class' => 'control-label']) !!}
{!! Form::file('files[]', ['id'=>'file3']) !!}
</div>
我应该验证至少有一个文件和一个表单请求中的MIME类型的存在。然后在相关表单控制器的存储方法中,原始文件名应该存储在三个相应的数据库字段(即file1,file2,file3)中。
I should validate the presence of at least one file and the mime types in a form request. Then in the store method of the related form controller, the original file names should be stored in the three corresponding database fields(namely file1, file2, file3).
我实现了这一点?
推荐答案
<div class="form-group col-lg-4">
{!! Form::label('file1', 'Select file 1', ['class' => 'control-label']) !!}
{!! Form::file('file1', ['id'=>'file1']) !!}
</div>
<div class="form-group col-lg-4">
{!! Form::label('file2', 'Select file 2', ['class' => 'control-label']) !!}
{!! Form::file('file2', ['id'=>'file2']) !!}
</div>
<div class="form-group col-lg-4">
{!! Form::label('file3', 'Select file 3', ['class' => 'control-label']) !!}
{!! Form::file('file3', ['id'=>'file3']) !!}
</div>
然后在控制器中使用您的建议代码:
Then in the controller I used your suggested code:
$files =[];
if ($request->file('file1')) $files[] = $request->file('file1');
if ($request->file('file2')) $files[] = $request->file('file2');
if ($request->file('file3')) $files[] = $request->file('file3');
foreach ($files as $file)
{
if(!empty($file)){
$filename=$file->getClientOriginalName();
$file->move(
base_path().'/public/uploads/', $filename
);
}
}
这篇关于Laravel 5.1:如何从三个不同的文件输入字段上传多个文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文