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 相关文章推荐
一个简单的自动发送邮件系统(二)
Oct 09 PHP
php 采集书并合成txt格式的实现代码
Mar 01 PHP
php 正则表达式小结
Aug 31 PHP
php url地址栏传中文乱码解决方法集合
Jun 25 PHP
php数组去重的函数代码
Feb 03 PHP
ThinkPHP处理Ajax返回的方法
Nov 22 PHP
Java和PHP在Web开发方面对比分析
Mar 01 PHP
php获取网页里所有图片并存入数组的方法
Apr 06 PHP
Zend Framework教程之Zend_Helpers动作助手ViewRenderer用法详解
Jul 20 PHP
php mysql like 实现多关键词搜索的方法
Oct 29 PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 PHP
PHP filter_var() 函数, 验证判断EMAIL,URL等
Mar 09 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
Mysql中分页查询的两个解决方法比较
2013/05/02 PHP
php获取文件夹路径内的图片以及分页显示示例
2014/03/11 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
Joomla数据库操作之JFactory::getDBO用法
2016/05/05 PHP
php 自定义错误日志实例详解
2016/11/12 PHP
Yii框架学习笔记之session与cookie简单操作示例
2019/04/30 PHP
prototype 1.5 &amp; scriptaculous 1.6.1 学习笔记
2006/09/07 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
jQuery选择器源码解读(二):select方法
2015/03/31 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
javascript实现标签切换代码示例
2016/05/22 Javascript
JS控制页面跳转时未请求要跳转的地址怎么回事
2016/10/14 Javascript
微信公众号开发 实现点击返回按钮就返回到聊天界面
2016/12/15 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
Bootstrap-table自定义可编辑每页显示记录数
2018/09/07 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
JavaScript常用工具函数大全
2020/05/06 Javascript
Linux系统上Nginx+Python的web.py与Django框架环境
2015/12/25 Python
将python代码和注释分离的方法
2018/04/21 Python
python format 格式化输出方法
2018/07/16 Python
Django 路由控制的实现代码
2018/11/08 Python
详解程序意外中断自动重启shell脚本(以Python为例)
2019/07/26 Python
Python通过2种方法输出带颜色字体
2020/03/02 Python
scrapy-splash简单使用详解
2021/02/21 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
Order by的几种用法
2013/06/16 面试题
机械设计制造专业个人求职信
2013/09/25 职场文书
学习新党章思想汇报
2014/01/09 职场文书
社区党建工作方案
2014/06/10 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
2015年第31个教师节致辞
2015/07/31 职场文书
《活见鬼》教学反思
2016/02/24 职场文书
MySQL 逻辑备份与恢复测试的相关总结
2021/05/14 MySQL