layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例

本文实例讲述了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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容