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中PDO基础教程 入门级
Sep 04 PHP
url decode problem 解决方法
Dec 26 PHP
php中将指针移动到数据集初始位置的实现代码[mysql_data_seek]
Nov 01 PHP
屏蔽机器人从你的网站搜取email地址的php代码
Nov 14 PHP
php中debug_backtrace、debug_print_backtrace和匿名函数用法实例
Dec 01 PHP
以实例全面讲解PHP中多进程编程的相关函数的使用
Aug 18 PHP
php mailer类调用远程SMTP服务器发送邮件实现方法
Mar 04 PHP
PHP的PDO操作简单示例
Mar 30 PHP
php实现的SSO单点登录系统接入功能示例分析
Oct 12 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
php如何利用pecl安装mongodb扩展详解
Jan 09 PHP
PHP正则判断一个变量是否为正整数的方法
Feb 27 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
PHP常用的文件操作函数经典收藏
2013/04/02 PHP
php-msf源码详解
2017/12/25 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
2021/03/09 PHP
javascript this用法小结
2008/12/19 Javascript
jquery实现点击TreeView文本父节点展开/折叠子节点
2013/01/10 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
jQuery实现的纵向下拉菜单实例详解【附demo源码下载】
2016/07/09 Javascript
微信小程序开发(一) 微信登录流程详解
2017/01/11 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
angularjs实现多张图片上传并预览功能
2017/02/24 Javascript
轻松理解JavaScript之AJAX
2017/03/15 Javascript
vue.js组件vue-waterfall-easy实现瀑布流效果
2017/08/22 Javascript
3种vue路由传参的基本模式
2018/02/22 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
详解vue-cli项目中怎么使用mock数据
2018/05/29 Javascript
通过vue写一个瀑布流插件代码实例
2019/09/07 Javascript
基于redis的小程序登录实现方法流程分析
2020/05/25 Javascript
解决Vue keep-alive 调用 $destory() 页面不再被缓存的情况
2020/10/30 Javascript
JavaScript构造函数原理及实现流程解析
2020/11/19 Javascript
[50:50]完美世界DOTA2联赛PWL S3 INK ICE vs DLG 第一场 12.20
2020/12/23 DOTA
图文讲解选择排序算法的原理及在Python中的实现
2016/05/04 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python实现的双色球生成功能示例
2017/12/18 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
Python使用Matlab命令过程解析
2020/06/04 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
python模拟点击玩游戏的实例讲解
2020/11/26 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
linux面试相关问题
2012/08/11 面试题
蔬菜基地的创业计划书
2014/01/06 职场文书
骨干教师培训感言
2014/01/16 职场文书
5.1手机促销活动
2014/01/17 职场文书
教你如何使用Python开发一个钉钉群应答机器人
2021/06/21 Python