Laravel框架文件上传功能实现方法示例


Posted in PHP onApril 16, 2019

本文实例讲述了Laravel框架文件上传功能实现方法。分享给大家供大家参考,具体如下:

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

实现步骤:

(1). 配置文件修改

打开 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 的对应日期目录下

Laravel框架文件上传功能实现方法示例

希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。

PHP 相关文章推荐
php中常用编辑器推荐
Jan 02 PHP
PHP数据库调用类调用实例(详细注释)
Jul 12 PHP
解析左右值无限分类的实现算法
Jun 20 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
高质量PHP代码的50个实用技巧必备(下)
Jan 22 PHP
PHP简单获取多个checkbox值的方法
Jun 13 PHP
详解PHP实现定时任务的五种方法
Jul 25 PHP
PHP 常用时间函数资料整理
Oct 22 PHP
yii 2.0中表单小部件的使用方法示例
May 23 PHP
PHP+mysql实现的三级联动菜单功能示例
Feb 15 PHP
PHP7新功能总结
Apr 14 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
Apr 16 #PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 #PHP
php文件操作之文件写入字符串、数组的方法分析
Apr 15 #PHP
PHP实现读取文件夹及批量重命名文件操作示例
Apr 15 #PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
Apr 15 #PHP
Linux下安装Memcached服务器和客户端与PHP使用示例
Apr 15 #PHP
Laravel如何创建服务器提供者实例代码
Apr 15 #PHP
You might like
在“咖啡之国”感受咖啡文化
2021/03/03 咖啡文化
用PHP ob_start()控制浏览器cache、生成html实现代码
2010/02/16 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
PHP实现 APP端微信支付功能
2018/06/22 PHP
图片自动缩小 点击放大
2008/07/07 Javascript
jQuery 浮动广告实现代码
2008/12/25 Javascript
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
五段实用的js高级技巧
2011/12/20 Javascript
提示$ is not defined错误分析及解决
2013/04/09 Javascript
js获取当前日期时间及其它日期操作汇总
2016/03/08 Javascript
AngularJS 过滤器的简单实例
2016/07/27 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
Vue组件基础用法详解
2020/02/05 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
python发布模块的步骤分享
2014/02/21 Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
Python爬取读者并制作成PDF
2015/03/10 Python
python与php实现分割文件代码
2017/03/06 Python
python3对接mysql数据库实例详解
2019/04/30 Python
django-rest-swagger的优化使用方法
2019/08/29 Python
Python +Selenium解决图片验证码登录或注册问题(推荐)
2020/02/09 Python
解决django migrate报错ORA-02000: missing ALWAYS keyword
2020/07/02 Python
Canvas制作的下雨动画的示例
2018/03/06 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
台湾网购生鲜第一品牌:i3Fresh爱上新鲜
2017/10/26 全球购物
学前教育学生自荐信范文
2013/12/31 职场文书
会议主持词
2014/03/17 职场文书
培训通知书模板
2015/04/17 职场文书
一般纳税人申请报告
2015/05/18 职场文书
2016年小学推普宣传周活动总结
2016/04/06 职场文书
python迷宫问题深度优先遍历实例
2021/06/20 Python
Pygame如何使用精灵和碰撞检测
2021/11/17 Python