【问题标题】:Uploading multiple files in Laravel 5在 Laravel 5 中上传多个文件
【发布时间】:2018-03-07 22:45:15
【问题描述】:

我一直在尝试使用下面的代码在 Laravel 中上传多个文件,但它只上传一张图片。请帮忙

$files = $request->file('file');

    foreach ($files as $file){

        $filename = time().'.'.$file->getClientOriginalExtension();

        $location = public_path('uploads/'.$filename);

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

        $filename_arr = [];
        array_push($filename_arr, $filename);
        $filename = json_encode($filename_arr);
        $upload->filename = $filename;
    }

【问题讨论】:

    标签: laravel


    【解决方案1】:

    Blade:当您要上传多个文件时,将 [] 附加到多个输入类型名称属性,如下所示:

    <input type="file" name="file[]" multiple>
    

    逻辑:

    if($request->hasFile('file'))
    {
        $files = $request->file('file');
        foreach ($files as $file) {
            $filename = $file->getClientOriginalName();
            $file->move(public_path().'/uploads, $filename);
        }
    }
    

    【讨论】:

    • 您好,您的代码工作正常,正在上传所有文件。这是否意味着一个不能重命名多个文件和两个如何在循环中创建一个 json 对象来存储一个用户的文件名。
    • 在 foreach 循环之前创建一个空集合 $file_names = collect();并在获取文件名后的循环下使用此代码 $file_names->push($filename);循环结束后 dd($file_names);这将存储您上传的所有文件
    猜你喜欢
    • 2015-09-30
    • 2016-03-14
    • 2021-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-11-28
    • 2013-08-14
    • 2016-07-21
    • 2015-01-30
    相关资源
    最近更新 更多