php - 拉维尔 5.1 : How to upload multiple files from three different file input fields?

标签 php laravel file-upload laravel-5 multiple-file-upload

我有一个表单,用户应至少选择一个要上传的文件。我有三个文件输入字段,如下所示:

            <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 类型。然后在相关表单 Controller 的store方法中,将原始文件名存储在对应的三个数据库字段(即file1、file2、file3)中。

我该如何实现这个?

最佳答案

经过一番查找,终于找到了解决办法。首先,我将 View 修改为如下所示:

<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>

然后在 Controller 中我使用了您建议的代码:

$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
                );
            }

        }

关于php - 拉维尔 5.1 : How to upload multiple files from three different file input fields?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31936336/

相关文章:

php - 如何在一个数组PHP中设置子json数组

javascript - 使用 javascript 检查 URL 是否包含值

php - 在 PHP 中记录的上传缩略图

php - 使用 PHP 创建单个文件上传表单的最佳方法是什么?

javascript - 获取上传文件的文件路径

php - 如何动态地将选项添加到使用从 php 脚本检索的 json 数据构建的选择列表?

PHP : inserting row id to another table

php - Laravel 4, Eloquent - 语句和运算符之间

Laravel 5.2- 如何为现有的 url() 辅助函数添加前缀?

javascript - 未捕获的范围错误 : Maximum call stack size exceeded (jquery-1. 12.4)