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实现Socket服务器的代码
Apr 03 PHP
php-accelerator网站加速PHP缓冲的方法
Jul 30 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
PHP基础知识回顾
Aug 16 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
php调用C代码的实现方法
Mar 11 PHP
详解php设置session(过期、失效、有效期)
Nov 12 PHP
crontab无法执行php的解决方法
Jan 25 PHP
Yii2分页的使用及其扩展方法详解
May 23 PHP
php实现URL加密解密的方法
Nov 17 PHP
关于PHP内置的字符串处理函数详解
Feb 04 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
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
js DOM模型操作
2009/12/28 Javascript
Jquery中显示隐藏的实现代码分析
2011/07/26 Javascript
jquery中子元素和后代元素的区别示例介绍
2014/04/02 Javascript
JavaScript获取图片像素颜色并转换为box-shadow显示
2016/03/11 Javascript
javascript实现简单的on事件绑定
2016/08/23 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
原生js编写基于面向对象的分页组件
2016/12/05 Javascript
vue 2.x 中axios 封装的get 和post方法
2018/02/28 Javascript
一个基于react的图片裁剪组件示例
2018/04/18 Javascript
取消Bootstrap的dropdown-menu点击默认关闭事件方法
2018/08/10 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
antd多选下拉框一行展示的实现方式
2020/10/31 Javascript
VueCli生产环境打包部署跨域失败的解决
2020/11/13 Javascript
原生js实现弹幕效果
2020/11/29 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
在Python下利用OpenCV来旋转图像的教程
2015/04/16 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
Python列表list解析操作示例【整数操作、字符操作、矩阵操作】
2017/07/25 Python
python 用正则表达式筛选文本信息的实例
2018/06/05 Python
Python使用pandas对数据进行差分运算的方法
2018/12/22 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
numpy.meshgrid()理解(小结)
2019/08/01 Python
python批量将excel内容进行翻译写入功能
2019/10/10 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
python判断一个变量是否已经设置的方法
2020/08/13 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
全球才华横溢工匠的家居装饰、珠宝和礼物:NOVICA
2021/01/22 全球购物
会计出纳员的自我评价
2014/01/15 职场文书
求职自荐信怎么写
2014/03/06 职场文书
2014年党务公开工作总结
2014/12/09 职场文书
校园环境卫生倡议书
2015/04/29 职场文书
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技