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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
实用函数7
Nov 08 PHP
php中全局变量global的使用演示代码
May 18 PHP
比较简单的百度网盘文件直链PHP代码
Mar 24 PHP
ThinkPHP连接数据库的方式汇总
Dec 05 PHP
详解Grunt插件之LiveReload实现页面自动刷新(两种方案)
Jul 31 PHP
使用PHP生成图片的缩略图的方法
Aug 18 PHP
php日期操作技巧小结
Jun 25 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
PHP验证终端类型是否为手机的简单实例
Feb 07 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
PHP 中使用explode()函数切割字符串为数组的示例
May 06 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程序占用多少内存(memory_get_usage)
2012/09/23 PHP
php生成随机字符串可指定纯数字、纯字母或者混合的
2014/04/18 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
jquer之ajaxQueue简单实现代码
2011/09/15 Javascript
js不完美解决click和dblclick事件冲突问题
2012/07/16 Javascript
21个值得收藏的Javascript技巧
2014/02/04 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
jQuery实现为控件添加水印文字效果(附源码)
2015/12/02 Javascript
AngularJs动态加载模块和依赖注入详解
2016/01/11 Javascript
jQuery表单事件实例代码分享
2016/08/18 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
Vue  webpack 项目自动打包压缩成zip文件的方法
2019/07/24 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
Python实现获取命令行输出结果的方法
2017/06/10 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
便捷提取python导入包的属性方法
2018/10/15 Python
Python实现代码统计工具
2019/09/19 Python
Anaconda和ipython环境适配的实现
2020/04/22 Python
Python Matplotlib绘图基础知识代码解析
2020/08/31 Python
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
比利时买床:Beter Bed
2017/12/06 全球购物
美国现代家具网站:Design Within Reach
2018/07/19 全球购物
照片礼物和装饰:MyPhoto
2019/11/02 全球购物
自荐信模版
2013/10/24 职场文书
技校毕业生自荐书
2014/05/23 职场文书
建筑安全标语
2014/06/07 职场文书
缓刑人员思想汇报500字
2014/09/12 职场文书
2014年个人思想工作总结
2014/11/27 职场文书
世界卫生日宣传活动总结
2015/02/09 职场文书
保研推荐信范文
2015/03/25 职场文书
开国大典观后感
2015/06/04 职场文书
小组组名及励志口号
2015/12/24 职场文书
历史名人教你十五个读书方法,赶快Get起来!
2019/07/18 职场文书