Thinkphp框架+Layui实现图片/文件上传功能分析


Posted in PHP onFebruary 07, 2020

本文实例讲述了Thinkphp框架+Layui实现图片/文件上传功能。分享给大家供大家参考,具体如下:

在项目中用到了,再网上找了现成的代码都是借口异常或者非法上传,所以在一番摸索搞定之后拿来和大家分享。

html:

<form class="layui-form layui-form-pane" action="" style="margin-top:20px;" enctype="multipart/form-data">
  <center>
    <div class="layui-upload-drag" id="uploadBanner">
      <img class="layui-upload-img" id="upload-photo">
      <i class="layui-icon" id="upload-icon">?</i>
      <p>点击上传,或将文件拖拽到此处</p>
      <p>建议尺寸1920*512</p>
    </div>
    <input type="hidden" id="res" name="banner_photo" value="" lay-verify="required" />
    <div class="layui-form-item" style="margin-top:10px;">
      <button class="layui-btn" lay-submit="" lay-filter="sub">提交</button>
    </div>
    <div id="demoText"></div>
  </center>
</form>

JS:

layui.use('upload', function(){
  var $ = layui.jquery
    ,upload = layui.upload;
  //普通图片上传
  var uploadInst = upload.render({
    elem: '#uploadBanner'
    ,url: "{:U('Api/doUploadPic')}"
    ,before: function(obj){
      //预读本地文件示例,不支持ie8
      obj.preview(function(index, file, result){
        $('#upload-photo').attr('src', result); //图片链接(base64)
        $('#upload-photo').attr('style', 'height:10rem;');
        $('#upload-icon').attr('style','display:none;');
      });
    }
    ,done: function(res, index, upload){
      //如果上传失败
      if(res.code > 0){
        return layer.msg('上传失败');
      }
      //上传成功
      console.log("成功啦!" + obj2string(res) + "  " + index + "  " + upload);
    }
    ,error: function(){
      //演示失败状态,并实现重传
      var demoText = $('#demoText');
      demoText.html('<span style="color: #FF5722;">上传失败</span> <a class="layui-btn layui-btn-xs demo-reload">重试</a>');
      demoText.find('.demo-reload').on('click', function(){
        uploadInst.upload();
      });
    }
  });
});

PHP接口:

public function doUploadPic()//上传模块
  {
    $upload = new \Think\Upload();
    $upload->maxSize = 3145728;
    $upload->exts = array('jpg', 'gif', 'png', 'jpeg');
    $upload->rootPath = './Public/'; // 设置附件上传根目录
    $upload->savePath = 'upload/'; // 设置附件上传子目录
    $info = $upload->upload();
    if(!$info){
      $this->error($upload->getError());
    }else{
      foreach($info as $file){
      $data = '/Public'.$file['savepath'] . $file['savename'];
      $file_a=$data;
      echo '{"code":0,"msg":"成功上传","data":{"src":"'.$file_a.'"}}';
      }
    }
  }

图片就上传到/Public/upload文件夹下了:

Thinkphp框架+Layui实现图片/文件上传功能分析

Thinkphp框架+Layui实现图片/文件上传功能分析

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

PHP 相关文章推荐
smarty静态实验表明,网络上是错的~呵呵
Nov 25 PHP
实现 win2003 下 mysql 数据库每天自动备份
Dec 06 PHP
轻松修复Discuz!数据库
May 03 PHP
php调用dll的实例操作动画与代码分享
Aug 14 PHP
FastCGI 进程意外退出造成500错误
Jul 26 PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
php通过PHPExcel导入Excel表格到MySQL数据库的简单实例
Oct 29 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
PHP上传图片、删除图片简单实例
Nov 12 PHP
Laravel使用支付宝进行支付的示例代码
Aug 16 PHP
PHP执行linux命令6个函数代码实例
Nov 24 PHP
PHP查找一列有序数组是否包含某值的方法
Feb 07 #PHP
php测试kafka项目示例
Feb 06 #PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 #PHP
PHP实现常用排序算法的方法
Feb 05 #PHP
PHP ElasticSearch做搜索实例讲解
Feb 05 #PHP
PHP实现新型冠状病毒疫情实时图的实例
Feb 04 #PHP
php post换行的方法
Feb 03 #PHP
You might like
PHP开发文件系统实例讲解
2006/10/09 PHP
php数组使用规则分析
2015/02/27 PHP
PHP连接操作access数据库实例
2015/03/30 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
初学Javascript的一些总结
2008/11/03 Javascript
jQuery 1.4 15个你应该知道的新特性(译)
2010/01/24 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
javascript实现的淘宝旅行通用日历组件用法实例
2015/08/03 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
JS实现消息来时让网页标题闪动效果的方法
2016/04/20 Javascript
JS原型链怎么理解
2016/06/27 Javascript
vue实现消息的无缝滚动效果的示例代码
2017/12/05 Javascript
浅析vue-router原理
2018/10/19 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
Python 实现删除某路径下文件及文件夹的实例讲解
2018/04/24 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
python中时间模块的基本使用教程
2019/05/14 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
如何理解python面向对象编程
2020/06/01 Python
Django如何批量创建Model
2020/09/01 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
详解pandas映射与数据转换
2021/01/22 Python
自荐书范文
2013/12/08 职场文书
2014新年寄语
2014/01/20 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
我们的节日元宵节活动总结
2015/02/06 职场文书
战友聚会致辞
2015/07/28 职场文书
Python采集股票数据并制作可视化柱状图
2022/04/04 Python
MYSQL如何查看操作日志详解
2022/05/30 MySQL