Laravel 5.3 多文件上传

新手上路,请多包涵

如何在 Laravel 5.3 中上传多个文件。如果我尝试使用 1 张图片,它可以工作,但不会上传多张图片。

这是我的代码:

 if($request->hasFile('attachment')) {
    foreach($request->allFiles('attachments') as $file) {
        $file->store('users/' . $user->id . '/messages');
    }
}

原文由 Jamie 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 412
2 个回答

它现在像这样工作:

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

if($request->hasFile('attachment'))
{
    foreach ($files as $file) {
        $file->store('users/' . $this->user->id . '/messages');
    }
}

我必须在 name 属性的值之后附加 [] ,所以:

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

原文由 Jamie 发布,翻译遵循 CC BY-SA 3.0 许可协议

这是在 laravel 中上传多个文件的控制器:

     public function fileUpload(Request $request)
    {
        if ($request->hasfile('filenames')) {
            foreach ($request->file('filenames') as $file) {
                $name = $file->getClientOriginalName();
                $file->move(public_path() . '/mytestfile/', $name);
                $data[] = $name;
            }
            return back()->with('Success!','Data Added!');
        }
    }

资源中的这个视图文件:

 <html lang="en">
<head>
    <title>Multiple Image Upload</title>
    <script src="jquery/1.9.1/jquery.js"></script>
    <link rel="stylesheet" href="3.3.6/css/bootstrap.min.css">
</head>
<body>

<div class="container lst">
    <h3 class="well">Test Muliple Image Upload</h3>

    <form method="post" action="{{url('image-upload')}}" enctype="multipart/form-data">
        {{csrf_field()}}

        <div class="input-group hdtuto control-group lst increment" >
            <input type="file" name="filenames[]" class="myfrm form-control" multiple>
            <div class="input-group-btn">
                <button class="btn btn-success" type="button"><i class="fldemo glyphicon glyphicon-plus"></i>Add</button>
            </div>
        </div>

        <button type="submit" class="btn btn-success" style="margin-top:10px">Submit</button>
    </form>
</div>

<script type="text/javascript">
    $(document).ready(function() {
        $(".btn-success").click(function(){
            var lsthmtl = $(".clone").html();
            $(".increment").after(lsthmtl);
        });
        $("body").on("click",".btn-danger",function(){$(this).parents(".hdtuto control-group lst").remove();
        });
    });
</script>

</body>
</html>

原文由 Isuru U Liyana Arachchi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题