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 Undefined index和Undefined variable的解决方法
Mar 27 PHP
PHP教程 变量定义
Oct 23 PHP
UCenter中的一个可逆加密函数authcode函数代码
Jul 20 PHP
Smarty的配置与高级缓存技术分享
Jun 05 PHP
PHP限制页面只能在微信自带浏览器访问的代码
Jan 15 PHP
php禁止某ip或ip地址段访问的方法
Feb 25 PHP
分享微信扫码支付开发遇到问题及解决方案-附Ecshop微信支付插件
Aug 23 PHP
PHP加密解密函数详解
Oct 28 PHP
PHP函数checkdnsrr用法详解(Windows平台用法)
Mar 21 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
Dec 24 PHP
在PHP中实现使用Guzzle执行POST和GET请求
Oct 15 PHP
phpQuery采集网页实现代码实例
Apr 02 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 PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
悄悄用脚本检查你访问过哪些网站的代码
2010/12/04 Javascript
JavaScript性能陷阱小结(附实例说明)
2010/12/28 Javascript
关于query Javascript CSS Selector engine
2013/04/12 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
JavaScript数据结构与算法之集合(Set)
2016/01/29 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
浅谈Vue 初始化性能优化
2017/08/31 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
nodejs实现爬取网站图片功能
2017/12/14 NodeJs
vuex 解决报错this.$store.commit is not a function的方法
2018/12/17 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
python bottle框架支持jquery ajax的RESTful风格的PUT和DELETE方法
2017/05/24 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
python  Django中的apps.py的目的是什么
2018/10/15 Python
python构建基础的爬虫教学
2018/12/23 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
python中@contextmanager实例用法
2021/02/07 Python
马来西亚最热门的在线时尚商店:FashionValet
2018/11/11 全球购物
新加坡一家在线男士皮具品牌:Faire Leather Co.
2019/12/01 全球购物
幼儿园教师获奖感言
2014/03/11 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
工地门卫岗位职责范本
2014/07/01 职场文书
2015年六一儿童节演讲稿
2015/03/19 职场文书
辞职信格式范文
2015/05/13 职场文书
植树节新闻稿
2015/07/17 职场文书
2016教师党员学习心得体会
2016/01/21 职场文书
优质护理心得体会
2016/01/22 职场文书
深入解析Apache Hudi内核文件标记机制
2022/03/31 Servers
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA