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 多个submit提交表单 处理方法
Jul 07 PHP
php 魔术方法使用说明
Oct 20 PHP
PHP 全角转半角实现代码
May 16 PHP
简单实用的.net DataTable导出Execl
Oct 28 PHP
php使用curl模拟登录后采集页面的例子
Nov 04 PHP
php5.3 不支持 session_register() 此函数已启用的解决方法
Nov 12 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
四个PHP非常实用的功能
Sep 29 PHP
PHP创建PowerPoint2007文档的方法
Dec 10 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
浅谈PHP Cookie处理函数
Jun 10 PHP
PHP实现随机发放扑克牌
Apr 21 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 Image Resize图片大小调整的函数代码
2011/01/17 PHP
php 生成文字png图片的代码
2011/04/17 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
微信access_token的获取开发示例
2015/04/16 PHP
jQuery 处理网页内容的实现代码
2010/02/15 Javascript
Jquery获取和修改img的src值的方法
2014/02/17 Javascript
Javascript遍历table中的元素示例代码
2014/07/08 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
jquery密码强度校验
2015/12/02 Javascript
js字符串引用的两种方式(必看)
2016/09/18 Javascript
Javascript将字符串日期格式化为yyyy-mm-dd的方法
2016/10/27 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
2017/10/10 Javascript
Vue 将后台传过来的带html字段的字符串转换为 HTML
2018/03/29 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
vue+iview动态渲染表格详解
2019/03/19 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
关于Keras模型可视化教程及关键问题的解决
2020/01/24 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
Python使用monkey.patch_all()解决协程阻塞问题
2020/04/15 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
Vero Moda西班牙官方购物网站:丹麦BESTSELLER旗下知名女装品牌
2018/04/27 全球购物
莫斯科大型旅游休闲商品超市:Camping.ru
2020/09/16 全球购物
给排水工程师岗位职责
2013/11/21 职场文书
给海归自荐信的建议
2013/12/13 职场文书
创业计划书如何吸引他人眼球
2014/01/10 职场文书
党风廉设责任书
2014/04/16 职场文书
小学一年级数学教学计划
2015/01/20 职场文书
毕业生政审意见范文
2015/06/04 职场文书
2016年党员读书月活动总结
2016/04/06 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
解析原生JS getComputedStyle
2021/05/25 Javascript
利用Python多线程实现图片下载器
2022/03/25 Python
python基础之//、/与%的区别详解
2022/06/10 Python