Laravel 文件上传功能实现

  • 打开 config/filesystems.php 文件

  • 在 ‘disks’ 数组中添加如下代码

//自定义

‘uploads’ => [
‘driver’ => ‘local’,
//‘root’ => storage_path(‘app/uploads’),
‘root’ => public_path(‘uploads/’.date(‘Ymd’)),
],

(2).前端视图 upload.blade.php 根据需求,设计简单的视图,核心代码如下

   <div class="panel panel-default">
        <div class="panel-heading">文件上传</div>
        <div class="panel-body">
            <form class="form-horizontal" role="form" method="POST" action="" enctype="multipart/form-data">
                {{ csrf_field() }}

                <div class="form-group">
                    <label for="file" class="col-md-4 control-label">Hello world</label>

                    <div class="col-md-6">
                        <input id="file" type="file" class="form-control" name="source">
                    </div>
                </div>



                <div class="form-group">
                    <div class="col-md-6 col-md-offset-4">
                        <button type="submit" class="btn btn-primary">
                            <i class="fa fa-btn fa-sign-in"></i> 上传
                        </button>
                    </div>
                </div>
            </form>
        </div>
    </div>

(3). 控制器核心代码

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
//上传文件 功能实现方法
public function upload(Request $request){
        if ($request->isMethod('POST')){
            $file = $request->file('source');
            //判断文件是否上传成功
            if ($file->isValid()){
                //原文件名
                $originalName = $file->getClientOriginalName();
                //扩展名
                $ext = $file->getClientOriginalExtension();
                //MimeType
                $type = $file->getClientMimeType();
                //临时绝对路径
                $realPath = $file->getRealPath();
                $filename = uniqid().'.'.$ext;
                $bool = Storage::disk('uploads')->put($filename,file_get_contents($realPath));
                //判断是否上传成功
                if($bool){
                    echo 'success';
                }else{
                    echo 'fail';
                }
            }
        }
        return view('upload');
    }

(4). 执行上述方法结果

通过调用上述方法,正确执行后,上传的文件将出现在 public/uploads 的对应日期目录下
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值