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之第六天
Oct 09 PHP
php 中文和编码判断代码
May 16 PHP
一个PHP缓存类代码(附详细说明)
Jun 09 PHP
基于php伪静态的实现详细介绍
Apr 28 PHP
php时区转换转换函数
Jan 07 PHP
php实现邮件发送并带有附件
Jan 24 PHP
Yii操作数据库的3种方法
Mar 11 PHP
php json_encode与json_decode详解及实例
Dec 13 PHP
Yii2中多表关联查询hasOne hasMany的方法
Feb 15 PHP
PHP实现浏览器中直接输出图片的方法示例
Mar 14 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
PHP中通过getopt解析GNU C风格命令行选项
Nov 18 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
纯真IP数据库的应用 IP地址转化成十进制
2009/06/14 PHP
php 抽象类的简单应用
2011/09/06 PHP
yii2.0实现pathinfo的形式访问的配置方法
2016/04/06 PHP
php实现简易计算器
2020/08/28 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
用jQuery实现的智能隐藏、滑动效果的返回顶部代码
2014/03/18 Javascript
jQuery弹出框代码封装DialogHelper
2015/01/30 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
浅析AngularJS中的生命周期和延迟处理
2015/06/18 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
bootstrap如何让dropdown menu按钮式下拉框长度一致
2017/04/10 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
微信小程序 setData的使用方法详解
2017/04/20 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
jquery中done和then的区别(详解)
2017/12/19 jQuery
教你使用vue-cli快速构建的小说阅读器
2019/05/13 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
layui实现数据分页功能(ajax异步)
2019/07/27 Javascript
微信小程序开发摇一摇功能
2019/11/22 Javascript
node.js中npm包管理工具用法分析
2020/02/14 Javascript
JS实现判断移动端PC端功能
2020/02/21 Javascript
Echarts在Taro微信小程序开发中的踩坑记录
2020/11/09 Javascript
Vue中使用wangeditor富文本编辑的问题
2021/02/07 Vue.js
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[01:51]历届DOTA2国际邀请赛举办地回顾 TI9落地上海
2018/08/26 DOTA
[52:52]完美世界DOTA2联赛PWL S3 LBZS vs access 第一场 12.10
2020/12/13 DOTA
深入浅析python中的多进程、多线程、协程
2016/06/22 Python
解决安装tensorflow遇到无法卸载numpy 1.8.0rc1的问题
2018/06/13 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
2019/06/20 Python
简单了解python单例模式的几种写法
2019/07/01 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
Spy++的使用方法及下载教程
2021/01/29 Python
H5 canvas中width、height和style的宽高区别详解
2018/11/02 HTML / CSS
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
幼师辞职信怎么写
2015/02/27 职场文书
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS