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 socke 向指定页面提交数据
Jul 23 PHP
PHP 反射机制实现动态代理的代码
Oct 22 PHP
一个简单php扩展介绍与开发教程
Aug 19 PHP
fetchAll()与mysql_fetch_array()的区别详解
Jun 05 PHP
php生成excel列序号代码实例
Dec 24 PHP
thinkPHP学习笔记之安装配置篇
Mar 05 PHP
PHP检测用户是否关闭浏览器的方法
Feb 14 PHP
Zend Framework教程之Bootstrap类用法概述
Mar 14 PHP
php flush无效,IIS7下php实时输出的方法
Aug 25 PHP
php解决和避免form表单重复提交的几种方法
Aug 31 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 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常见错误提示含义解释(实用!值得收藏)
2016/04/25 PHP
功能强大的php文件上传类
2016/08/29 PHP
PHP递归实现汉诺塔问题的方法示例
2017/11/25 PHP
laravel 时间格式转时间戳的例子
2019/10/11 PHP
javascript 模拟坦克大战游戏(html5版)附源码下载
2014/04/08 Javascript
jquery和css3实现的炫酷时尚的菜单导航
2014/09/01 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
jQuery弹出窗口打开链接的实现代码
2016/12/24 Javascript
vuejs指令详解
2017/02/07 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
详解vue中使用express+fetch获取本地json文件
2017/10/10 Javascript
vue-cli3.0使用及部分配置详解
2018/08/29 Javascript
javascript+HTML5 canvas绘制时钟功能示例
2019/05/15 Javascript
layui树形菜单动态遍历的例子
2019/09/23 Javascript
[52:32]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第三场 11.18
2020/11/18 DOTA
Python 错误和异常小结
2013/10/09 Python
一个计算身份证号码校验位的Python小程序
2014/08/15 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
详解用Python处理HTML转义字符的5种方式
2017/12/27 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
python 随机打乱 图片和对应的标签方法
2018/12/14 Python
解决新版Pycharm中Matplotlib图像不在弹出独立的显示窗口问题
2019/01/15 Python
Python求离散序列导数的示例
2019/07/10 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
美体小铺法国官方网站:The Body Shop法国
2020/06/04 全球购物
Linux管理员面试经常问道的相关命令
2014/12/12 面试题
学习十八大精神心得体会
2013/12/31 职场文书
圣诞节开幕词
2015/01/29 职场文书
个人承诺书格式范文
2015/04/29 职场文书
python 实现的截屏工具
2021/05/08 Python
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS
MySQL 字符集 character
2022/05/04 MySQL
maven 解包依赖项中的文件的解决方法
2022/07/15 Java/Android
SpringBoot详解执行过程
2022/07/15 Java/Android