laravel在许多输入中上传文件 [英] laravel upload files in many inputs

查看:36
本文介绍了laravel在许多输入中上传文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试上传4个输入文件中的文件,我从中获得了解决方案 此处但是问题出在数据库的所有字段中最后上传的file4输入文件

I'm trying to upload files in 4 inputs files i get the solution from here but the problem the last file4 input file uploaded in all fields in database

以我的刀片形式

{!! 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']) !!}

在我的控制器中

$input = $request->all();
    $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');
    if ($request->file('file4')) $files[] = $request->file('file4');
    foreach ($files as $file)
    {
        if(!empty($file)){
            $destinationPath = public_path() . '/uploads';
            $filename = $file->getClientOriginalName();
            $file->move($destinationPath, $filename);
        }

    }
    $model = new Project($input);
    $model -> file1 = $filename;
    $model -> file2 = $filename;
    $model -> file3 = $filename;
    $model -> file4 = $filename;
    $model->save();

推荐答案

这是因为您正在foreach之外访问$filename,这意味着仅使用了最后一个.

This is because you're accessing $filename outside of the foreach which will means only the last one is used.

您可以执行以下操作:

$input = $request->all();
$model = new Project($input);
$hasFiles = false;

foreach (range(1, 4) as $i) {
    $fileId = 'file' . $i;

    if ($request->hasFile($fileId)) {
        $hasFiles = true;

        $file = $request->file($fileId);

        $destinationPath = public_path() . '/uploads';
        $filename = $file->getClientOriginalName();
        $file->move($destinationPath, $filename);

        $model->$fileId = $filename;
    }
}

if ($hasFiles) {
    $model->save();
}

希望这会有所帮助!

这篇关于laravel在许多输入中上传文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆