前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel 文件上传功能实现

Laravel 文件上传功能实现

作者头像
泥豆芽儿 MT
发布2018-09-11 11:23:17
4.3K0
发布2018-09-11 11:23:17
举报
文章被收录于专栏:木头编程 - moTzxx

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1333735

  • 以Laravel 5.2.45 框架为主,进行文件上传功能的实现如下:

实现步骤:

(1). 配置文件修改

  • 打开 config/filesystems.php 文件
  • 在 ‘disks’ 数组中添加如下代码
代码语言:javascript
复制
        //自定义
        'uploads' => [
            'driver' => 'local',
            //'root' => storage_path('app/uploads'),
            'root' => public_path('uploads/'.date('Ymd')),
        ],

(2).前端视图 upload.blade.php

  • 根据需求,设计简单的视图,核心代码如下
代码语言:javascript
复制
            <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). 控制器核心代码

代码语言:javascript
复制
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
代码语言:javascript
复制
//上传文件 功能实现方法
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 的对应日期目录下
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017年12月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实现步骤:
    • (1). 配置文件修改
      • (2).前端视图 upload.blade.php
        • (3). 控制器核心代码
          • (4). 执行上述方法结果
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档