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 php_openssl.dll的作用
Jul 01 PHP
thinkphp中memcache的用法实例
Nov 29 PHP
PHP间隔一段时间执行代码的方法
Dec 02 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
PHP程序中使用adodb连接不同数据库的代码实例
Dec 19 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
php die()与exit()的区别实例详解
Dec 03 PHP
php微信公众平台开发(一) 配置接口
Dec 06 PHP
PHP获取表单数据与HTML嵌入PHP脚本的实现
Feb 09 PHP
PHP实现上传图片到数据库并显示输出的方法
May 31 PHP
PHP join()函数用法与实例讲解
Mar 11 PHP
PHP的cookie与session原理及用法详解
Sep 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
星际中一些鲜为人知的详细资料
2020/03/04 星际争霸
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
php购物车实现方法
2015/01/03 PHP
全面解读PHP的人气开发框架Laravel
2015/10/15 PHP
PHP函数按引用传递参数及函数可选参数用法示例
2018/06/04 PHP
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
javascript 系统文件夹文件操作及参数介绍
2013/01/08 Javascript
js保留两位小数使用toFixed实现
2013/07/29 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
Javascript对象字面量的理解
2016/06/22 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
javascript 开发之网页兼容各种浏览器
2017/09/28 Javascript
利用Javascript实现一套自定义事件机制
2017/12/14 Javascript
在knockoutjs 上自己实现的flux(实例讲解)
2017/12/18 Javascript
vue项目部署到Apache服务器中遇到的问题解决
2018/08/24 Javascript
详解JS预解析原理
2020/06/16 Javascript
JavaScript this指向相关原理及实例解析
2020/07/10 Javascript
解决Vue的文本编辑器 vue-quill-editor 小图标样式排布错乱问题
2020/08/03 Javascript
[44:40]Spirit vs Navi Supermajor小组赛 A组败者组第一轮 BO3 第一场 6.2
2018/06/03 DOTA
python实现对一个完整url进行分割的方法
2015/04/29 Python
python简单获取数组元素个数的方法
2015/07/13 Python
python去除空格和换行符的实现方法(推荐)
2017/01/04 Python
Python删除n行后的其他行方法
2019/01/28 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
万户网络JAVA程序员岗位招聘笔试试卷
2013/01/08 面试题
销售找工作求职信
2013/12/20 职场文书
端午节活动策划方案
2014/03/09 职场文书
会计试用期自我评价
2014/09/19 职场文书
助学感谢信范文
2015/01/21 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
飞越疯人院观后感
2015/06/09 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python