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注入实例
Oct 09 PHP
php下的权限算法的实现
Apr 28 PHP
php下一个阿拉伯数字转中文数字的函数
Jul 16 PHP
DISCUZ 论坛管理员密码忘记的解决方法
May 14 PHP
需要注意的几个PHP漏洞小结
Feb 05 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
php实现TCP端口检测的方法
Apr 01 PHP
PHP基于SMTP协议实现邮件发送实例代码
Apr 27 PHP
PHP实现将优酷土豆腾讯视频html地址转换成flash swf地址的方法
Aug 04 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
一文掌握PHP Xdebug 本地与远程调试(小结)
Apr 23 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
模拟OICQ的实现思路和核心程序(二)
2006/10/09 PHP
apache mysql php 源码编译使用方法
2012/05/03 PHP
php简单smarty入门程序实例
2015/06/11 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
jquery 弹出登录窗口实现代码
2009/12/24 Javascript
理解JavaScript的prototype属性
2012/02/11 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
js实现用户注册协议倒计时的方法
2015/01/21 Javascript
js简单实现表单中点击按钮动态增加输入框数量的方法
2015/08/18 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
使用bootstrap-paginator.js 分页来进行ajax 异步分页请求示例
2017/03/09 Javascript
JavaScript实现三级联动菜单实例代码
2017/06/26 Javascript
教你用Cordova打包Vue项目的方法
2017/10/17 Javascript
vue2.0 根据状态值进行样式的改变展示方法
2018/03/13 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
NodeJs之word文件生成与解析的实现代码
2019/04/01 NodeJs
koa2 从入门到精通(小结)
2019/07/23 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
Python中的super()方法使用简介
2015/08/14 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
python sleep和wait对比总结
2021/02/03 Python
CSS3 完美实现圆角效果
2009/07/13 HTML / CSS
意大利消费电子产品购物网站:SLG Store
2019/12/26 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
公证委托书大全
2014/04/04 职场文书
出生证明公证书
2014/04/09 职场文书
心理学专业求职信
2014/06/16 职场文书
应届生自荐书
2014/06/23 职场文书
新闻发布会活动策划方案
2014/09/15 职场文书
四年级学生期末评语
2014/12/26 职场文书
MySQL大小写敏感的注意事项
2021/05/24 MySQL
解决Redis启动警告问题
2022/02/24 Redis
MySQL外键约束(Foreign Key)案例详解
2022/06/28 MySQL