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 相关文章推荐
1.PHP简介
Oct 09 PHP
php 高性能书写
Dec 11 PHP
PHP __autoload()方法真的影响性能吗?
Mar 30 PHP
PHP中is_file不能替代file_exists的理由
Mar 04 PHP
php的memcache类分享(memcache队列)
Mar 26 PHP
CI框架中libraries,helpers,hooks文件夹详细说明
Jun 10 PHP
ThinkPHP多语言支持与多模板支持概述
Aug 22 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
深入浅析php json 格式控制
Dec 24 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
PHP打印输出函数汇总
Aug 28 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
Jun 07 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
main.php
2006/12/09 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
JQuery for与each性能比较分析
2013/05/14 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
了不起的node.js读书笔记之node的学习总结
2014/12/22 Javascript
js实现文本框选中的方法
2015/05/26 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
Jquery AJAX POST与GET之间的区别详细介绍
2016/10/17 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
javascript防篡改对象实例详解
2017/04/10 Javascript
整理 node-sass 安装失败的原因及解决办法(小结)
2020/02/19 Javascript
Python3实现将文件归档到zip文件及从zip文件中读取数据的方法
2015/05/22 Python
python使用clear方法清除字典内全部数据实例
2015/07/11 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
python动态加载包的方法小结
2016/04/18 Python
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
python实现ping命令小程序
2020/12/28 Python
css3实现图片遮罩效果鼠标hover以后出现文字
2013/11/05 HTML / CSS
英国汽车座椅和婴儿车购物网站:Uber Kids
2017/04/19 全球购物
致200米运动员广播稿
2014/02/06 职场文书
2014年父亲节活动方案
2014/03/06 职场文书
祖国在我心中演讲稿300字
2014/05/04 职场文书
物流专业求职信
2014/06/30 职场文书
市场调研项目授权委托书范本
2014/10/04 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
八年级上册语文教学计划
2015/01/22 职场文书
升职自我推荐信范文
2015/03/25 职场文书
2015年教研工作总结
2015/05/23 职场文书
2016道德模范先进事迹材料
2016/02/26 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
python 利用PyAutoGUI快速构建自动化操作脚本
2021/05/31 Python
使用HBuilder制作一个简单的HTML5网页
2022/07/07 HTML / CSS