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 相关文章推荐
MVC模式的PHP实现
Oct 09 PHP
php中文本操作的类
Mar 17 PHP
php的curl实现get和post的代码
Aug 23 PHP
php 将字符串按大写字母分隔成字符串数组
Apr 30 PHP
php strstr查找字符串中是否包含某些字符的查找函数
Jun 03 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
关于PHP实现异步操作的研究
Feb 03 PHP
php设置编码格式的方法
Mar 05 PHP
慎用preg_replace危险的/e修饰符(一句话后门常用)
Jun 19 PHP
php魔术函数__call()用法实例分析
Feb 13 PHP
PHP中trim()函数简单使用指南
Apr 16 PHP
设定php简写功能的方法
Nov 28 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
咖啡界又出新概念,无需咖啡豆的分子咖啡
2021/03/03 咖啡文化
Bo-Blog专用的给Windows服务器的IIS Rewrite程序
2007/08/26 PHP
PHP中的strtr函数使用介绍(str_replace)
2011/10/20 PHP
PHP生成验证码时“图像因其本身有错无法显示”的解决方法
2013/08/07 PHP
php格式化金额函数分享
2015/02/02 PHP
PHP实现微信退款功能
2018/10/02 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
javascript中注册和移除事件的4种方式
2013/03/20 Javascript
Enter转换为Tab的小例子(兼容IE,Firefox)
2013/11/14 Javascript
javascript圆盘抽奖程序实现原理和完整代码例子
2014/06/03 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
原生js实现图片层叠轮播切换效果
2016/02/02 Javascript
javascript监听页面刷新和页面关闭事件方法详解
2017/01/09 Javascript
jQuery表格(Table)基本操作实例分析
2017/03/10 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
浅析JavaScript中的事件委托机制跟深浅拷贝
2021/01/20 Javascript
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
python 排序算法总结及实例详解
2016/09/28 Python
Python发送http请求解析返回json的实例
2018/03/26 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
python之yield和Generator深入解析
2019/09/18 Python
解决Django no such table: django_session的问题
2020/04/07 Python
Java如何基于wsimport调用wcf接口
2020/06/17 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
使用CSS3来绘制一个月食图案
2015/07/18 HTML / CSS
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
linux面试题参考答案(11)
2012/05/01 面试题
自我鉴定的范文
2013/10/03 职场文书
标准导师推荐信(医学类)
2013/10/28 职场文书
物业管理毕业生个人的求职信
2013/11/30 职场文书
2019关于垃圾分类处理的调查报告
2019/12/26 职场文书
HTML常用标签超详细整理
2022/03/19 HTML / CSS