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 相关文章推荐
随时给自己贴的图片加文字的php水印
Mar 16 PHP
php获取操作系统语言代码
Nov 04 PHP
php 字符串压缩方法比较示例
Jan 23 PHP
php批量删除数据库下指定前缀的表以prefix_为例
Aug 24 PHP
php去除数组中重复数据
Nov 18 PHP
解决更换PHP5.4以上版本后Dedecms后台登录空白问题的方法
Oct 23 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
php使用include 和require引入文件的区别
Feb 16 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
Mar 06 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
Aug 15 PHP
php获取ajax的headers方法与内容实例
Dec 27 PHP
PHP get_html_translation_table()函数用法讲解
Feb 16 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
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
Zend的MVC机制使用分析(一)
2013/05/02 PHP
mod_php、FastCGI、PHP-FPM等PHP运行方式对比
2015/07/02 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
thinkphp5+layui实现的分页样式示例
2019/10/08 PHP
javascript 文档的编码问题解决
2009/03/01 Javascript
网页自动跳转代码收集
2009/09/27 Javascript
javascript 不间断的图片滚动并可点击
2010/01/15 Javascript
解决jQuery插件tipswindown与hintbox冲突
2010/11/05 Javascript
javascript中的undefined和not defined区别示例介绍
2014/02/26 Javascript
JS获取客户端IP地址、MAC和主机名的7个方法汇总
2014/07/21 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
2015/06/01 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
vue.js初学入门教程(2)
2016/11/07 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
vue.js实现的绑定class操作示例
2018/07/06 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
vue.js+ElementUI实现进度条提示密码强度效果
2020/01/18 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
[16:43]Heroes19_剃刀(完美)
2014/10/31 DOTA
python学生信息管理系统(完整版)
2020/04/05 Python
python+openCV利用摄像头实现人员活动检测
2019/06/22 Python
python 制作本地应用搜索工具
2021/02/27 Python
美国玛丽莎收藏奢华时尚商店:Marissa Collections
2016/11/21 全球购物
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
大一自我鉴定范文
2013/12/27 职场文书
2014的自我评价
2014/01/13 职场文书
《值日生》教学反思
2014/02/17 职场文书
暑假安全教育广播稿
2014/09/10 职场文书
表扬通报怎么写
2015/01/16 职场文书
村干部任职承诺书
2015/01/21 职场文书
大学生求职自荐信
2015/03/24 职场文书
2015年乡镇工作总结范文
2015/04/22 职场文书
2015年社区平安建设工作总结
2015/05/13 职场文书
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js