laravel文件上传

laravel上传文件选择存储的磁盘,其中'driver'=>'local'指上传到本地驱动,'root'=>stroage_path('')指文件存放的路径

上传配置项路径在app/config/filesystems.php

laravel文件上传

我新建了一个uploads的磁盘,将上传的文件放在了app/uploads文件夹下

前端页面使用from表单上传文件,上传文件必须得家上enctype="multipart/form-data"这个属性 否则上传不了文件

<div class="panel-body">
        <form class="form-horizontal" method="post" action="" enctype="multipart/form-data">

                    <div class="form-group">
                <label class="col-sm-2 control-label">文件</label>

                <div class="col-sm-5">
                    <input type="file" name="file" />
                </div>
                <div class="col-sm-5">
                    <p class="form-control-static text-danger"></p>
                </div>
            </div>
            <div class="form-group">
                <div class="col-sm-offset-2 col-sm-10">
                    <button type="submit" class="btn btn-primary">提交</button>
                </div>
            </div>
        </form>
    </div>

laravel后台接收前端传来的文件对象

public function upload(Request $request){

        if($request->isMethod('POST')){
            $file = $request->file('file');

            if($file->isValid()){
                $filename = $file->getClientOriginalName();//原文件名
                $ext = $file->getClientOriginalExtension();//文件拓展名
                $type = $file->getClientMimeType();//mimetype
                $path = $file->getRealPath();//绝对路径

                $filenames = time().uniqid().".".$ext;//设置文件存储名称

                $res = Storage::disk('uploads')->put($filenames,file_get_contents($path));
                
            }
        }
        return view('student.upload');
    }