layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例


Posted in PHP onMay 12, 2018

本文实例讲述了layui框架实现文件上传及TP3.2.3对上传文件进行后台处理操作。分享给大家供大家参考,具体如下:

layui框架是1.0.9版本。。

首先html页面代码如下:

<div class="layui-form-item" id="upload_file">
     <div class="layui-input-block" style="width: 300px;">
      <input type="hidden" id="img_url1" name="HeadImageUrl" value=""/>
      <div class="layui-upload-drag" id="uploadpic1" lay-verify="uploadpic1">
        <div class="layui-col-xs12 layui-col-md12">
          <img class="layui-upload-img" id="demo1" >
        </div>
        <div class="button-hide">
          <input type="file" name="banner_file_upload" id="banner_file_upload" class="layui-uplaod-file"  lay-type="file">
        </div>
      </div>
    </div>
</div>

js代码如下:

<script type="text/javascript" th:inline="javascript">
     layui.use('upload', function (){
       var upload = layui.upload;
       var url="__PUBLIC__";
       upload({
         elem: '#banner_file_upload',
         url: "/index.php/Admin/Product/upload",
         method: 'post',
         before: function(obj){
           console.log('文件上传中');
           layer.load();
         },
         success: function (msg) {
           console.log(msg);
           if(msg.msg=="success"){
             layer.closeAll('loading');
             layer.msg("上传成功");
             $("#img_url1").attr("value", msg.src);
           }else if(msg.msg=="error"){
             layer.closeAll('loading');
             layer.msg(msg.code);
           }
         },
         error:function (data) {
           layer.msg("上传失败");
           console.log(data);
         }
       });
     });
</script>

接下来的php后台接值的方法:

#上传文件方法
public function upload(){
    $res=array(
     'code'=>1,
     'msg'=>'no sorry',
      'data'=>array(
        'src'=>'',
      )
    );
    #图片存放路径
    $directory = C('UPLOAD_PATH')."/Public/docment/";
    #判断目录是否存在 不存在则创建
    if(!(is_dir($directory))){
      $this->directory($directory);
    }
    #获取数据库最后一条id 当做文件名称
    $product_last_id=D('ApiProduct')->getLastId();
    $savename="ApiProduct_".time().'_'.($product_last_id['id']+1);
    $upload = new \Think\Upload();
    $upload->maxSize = 0;
    $upload->exts = array('doc','docx','xls','xlsx','pdf','txt');
    $upload->rootPath = $directory;
    $upload->saveName="$savename";
    $upload->savePath = '';
    $info = $upload->uploadOne($_FILES['banner_file_upload']);
    if(!$info){
      $res['code']=$upload->getError();
      $res['msg']='error';
    }else{
      $res['code']=0;
      $res['msg']='success';
      $res['src']="/Public/docment/".$savename.".".$info['ext'];
    }
   echo json_encode($res);die;
}
/**
* 递归创建文件
* @author erwa<erwa@qingjinju.net>
*/
public function directory($dir){
    return is_dir ( $dir ) or directory(dirname( $dir )) and mkdir ( $dir , 0777);
}

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

PHP 相关文章推荐
php中计算时间差的几种方法
Dec 31 PHP
服务器web工具 php环境下
Dec 29 PHP
PHP自定义大小验证码的方法详解
Jun 07 PHP
解析php中反射的应用
Jun 18 PHP
php抽奖小程序的实现代码
Jun 18 PHP
PHP计算加权平均数的方法
Jul 16 PHP
Symfony2框架创建项目与模板设置实例详解
Mar 17 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
实例介绍PHP中zip_open()函数用法
Feb 15 PHP
php源码的安装方法和实例
Sep 26 PHP
php-7.3.6 编译安装过程
Feb 11 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 PHP
PHP折半(二分)查找算法实例分析
May 12 #PHP
PHP区块查询实现方法分析
May 12 #PHP
可兼容php5与php7的cURL文件上传功能实例分析
May 11 #PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
May 11 #PHP
PHP7基于curl实现的上传图片功能
May 11 #PHP
关于ThinkPHP中的异常处理详解
May 11 #PHP
PHP基于递归算法解决兔子生兔子问题
May 11 #PHP
You might like
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
php商品对比功能代码分享
2015/09/24 PHP
PHP动态生成指定大小随机图片的方法
2016/03/25 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
JavaScript学习笔记(二) js对象
2011/10/25 Javascript
jquery对象和DOM对象的区别介绍
2013/08/09 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
2014/10/19 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
bootstrap flask登录页面编写实例
2016/11/01 Javascript
利用jQuery.Validate异步验证用户名是否存在(推荐)
2016/12/09 Javascript
浅谈jQuery中事情的动态绑定
2017/02/12 Javascript
angularjs实现搜索的关键字在正文中高亮出来
2017/06/13 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
jQuery动态移除与增加onclick属性的方法详解
2018/06/07 jQuery
使用jQuery动态设置单选框的选中效果
2018/12/06 jQuery
vue中的 $slot 获取插槽的节点实例
2019/11/12 Javascript
原生Vue 实现右键菜单组件功能
2019/12/16 Javascript
详解vue组件之间的通信
2020/08/30 Javascript
[05:09]第二届DOTA2亚洲邀请赛决赛日比赛集锦:iG 3:0 OG夺冠
2017/04/05 DOTA
python读写二进制文件的方法
2015/05/09 Python
详解Python中的序列化与反序列化的使用
2015/06/30 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
pandas中apply和transform方法的性能比较及区别介绍
2018/10/30 Python
理想高通滤波实现Python opencv示例
2019/01/30 Python
Python2与Python3的区别点整理
2019/12/12 Python
pytorch中tensor.expand()和tensor.expand_as()函数详解
2019/12/27 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
美国环保婴儿用品公司:The Honest Company
2017/11/23 全球购物
运动会表扬稿大全
2014/01/16 职场文书
小学安全教育材料
2014/02/17 职场文书
产品质量保证书
2014/04/29 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
CSS极坐标的实例代码
2021/06/03 HTML / CSS