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使用者状态管理功能的应用
Oct 09 PHP
用session做客户验证时的注意事项
Oct 09 PHP
phpMyAdmin出现无法载入 mcrypt 扩展,请检查PHP配置的解决方法
Mar 26 PHP
PHP转换IP地址到真实地址的方法详解
Jun 09 PHP
php二维数组排序详解
Nov 06 PHP
PHP strip_tags()去除HTML、XML以及PHP的标签介绍
Feb 18 PHP
PHP利用imagick生成组合缩略图
Feb 19 PHP
PHP yii实现model添加默认值的方法(两种方法)
Nov 10 PHP
thinkphp3.2嵌入百度编辑器ueditor的实例代码
Jul 13 PHP
Yii 访问 Gii(脚手架)时出现 403 错误
Jun 06 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
如何解决php-fpm启动不了问题
Nov 17 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/08/02 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
js判断样式className同时增加class或删除class
2013/01/30 Javascript
javascript实现简单的Map示例介绍
2013/12/23 Javascript
jQuery中事件对象e的事件冒泡用法示例介绍
2014/04/25 Javascript
JavaScript设置获取和设置属性的方法
2015/03/04 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
js实现多图左右切换功能
2016/08/04 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
vue中使用router全局守卫实现页面拦截的示例
2020/10/23 Javascript
[01:19]DOTA2城市挑战赛报名开始 开启你的城市传奇
2018/03/23 DOTA
[01:03:33]Alliance vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
python3.4用函数操作mysql5.7数据库
2017/06/23 Python
python PyTorch预训练示例
2018/02/11 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
python实现将多个文件分配到多个文件夹的方法
2019/01/07 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
Pytorch中的variable, tensor与numpy相互转化的方法
2019/10/10 Python
opencv+pyQt5实现图片阈值编辑器/寻色块阈值利器
2020/11/13 Python
python 实现Harris角点检测算法
2020/12/11 Python
python之openpyxl模块的安装和基本用法(excel管理)
2021/02/03 Python
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
北京振戎融通Java面试题
2015/09/03 面试题
医生自荐信
2013/10/11 职场文书
老师推荐信
2013/10/28 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
2014镇党委书记党建工作汇报材料
2014/11/02 职场文书
自主招生专家推荐信
2015/03/26 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
2021/05/26 Servers