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 相关文章推荐
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 PHP
PHP下escape解码函数的实现方法
Aug 08 PHP
PHP set_error_handler()函数使用详解(示例)
Nov 12 PHP
PHP面向对象程序设计之类常量用法实例
Aug 20 PHP
PHP正则表达式替换站点关键字链接后空白的解决方法
Sep 16 PHP
PHP中变量引用与变量销毁机制分析
Nov 15 PHP
降低PHP Redis内存占用
Mar 23 PHP
php实现自定义中奖项数和概率的抽奖函数示例
May 26 PHP
PHPstorm快捷键(分享)
Jul 17 PHP
php批量转换文件夹下所有文件编码的函数类
Aug 06 PHP
PHP常见过waf webshell以及最简单的检测方法
May 21 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 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
mysql建立外键
2006/11/25 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
使用JavaScript进行进制转换将字符串转换为十进制
2014/09/21 Javascript
网页中表单按回车就自动提交的问题的解决方案
2014/11/03 Javascript
javascript 实现 原路返回
2015/01/21 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
vue2实现数据请求显示loading图
2017/11/28 Javascript
微信小程序下拉框功能的实例代码
2018/11/06 Javascript
vue iview多张图片大图预览、缩放翻转
2019/07/13 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
vue自定义switch开关组件,实现样式可自行更改
2019/11/01 Javascript
Python实现二分法算法实例
2015/02/02 Python
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
2016/05/05 Python
Python正则表达式使用经典实例
2016/06/21 Python
Python基于pandas实现json格式转换成dataframe的方法
2018/06/22 Python
python pygame实现挡板弹球游戏
2019/11/25 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
Infababy英国:婴儿推车、Travel System婴儿车和婴儿汽车座椅销售
2018/05/23 全球购物
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
安全的后院和健身蹦床:JumpSport
2019/07/15 全球购物
物业公司采购员岗位职责
2013/12/31 职场文书
写给女生的道歉信
2014/01/08 职场文书
新学期家长寄语
2014/01/19 职场文书
节水倡议书范文
2014/04/15 职场文书
党员评议思想汇报
2014/10/08 职场文书
毕业实习指导教师评语
2014/12/31 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
社区安置帮教工作总结2015
2015/05/20 职场文书
瞿秋白纪念馆观后感
2015/06/10 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
2019大学生实习报告
2019/06/21 职场文书
2019脱贫攻坚工作总结报告范本!
2019/08/06 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书