美文网首页
Tp+Layui 多图上传

Tp+Layui 多图上传

作者: 风度翩翩的程序猿 | 来源:发表于2020-05-29 11:02 被阅读0次
    在公司遇到了这个问题,之前都是用jq自己封装一个多图上传的东西,但是那样太麻烦了,并且样式也不好搞,在这整合了一下tp+layui的多图上传。

    不多说了,上代码

    首先呢,我们在layui的官方文档上,拿走他们的前端代码

     <fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
                    <legend>上传多张图片</legend>
                </fieldset>
    
                <div class="layui-upload">
                    <button type="button" class="layui-btn" id="test2">多图片上传</button>
                    <blockquote class="layui-elem-quote layui-quote-nm" style="margin-top: 10px;">
                        预览图:
                        <div class="layui-upload-list" id="demo2"></div>
                    </blockquote>
                </div>
    

    没错就那么多,不要急!这是html代码,在这提醒(千万不要忘了layui的css和js)一定要导入,否则没有任何效果!!

    接下来再看layui的js代码

     var test2 = new Array();//这个数组就是多张图片接口返回的路径
        layui.use('upload', function () {
            var $ = layui.jquery
                , upload = layui.upload;
            //多图片上传test2
            upload.render({
                elem: '#test2'
                , url: '/index.php/admin/Article/imgall' //改成您自己的上传接口
                , multiple: true
                , before: function (obj) {
                    obj.preview(function (index, file, result) {
                        $('#demo2').append('<img src="' + result + '" alt="' + file.name + '" class="layui-upload-img">')  // 这里是预览图
                    });
                }
                , done: function (res) {
                    //上传完毕
    
                    test2.push(res); //将接口返回的路径一个一个的push到test2数组 
                    console.log(test2, 'test2');
                }
            });
        });
    

    前端咱们基本上搞定了(是不是特别简单),不需要咱们仔细研究,因为这都是他们官方封装好的,咱们直接拿来用就行啦!!!!(这里提醒,多看文档是相当有好处的)。

    这里到了tp部分,也是很多人苦恼的部分,都说后端比前端难,哈哈哈哈哈!come,上代码!!

        public function imgall()
        {
            $path = C('IMG_FOLDER'); // 这里是我自己定义的路径常量
            $upload = new \Think\Upload(); // 实例化上传文件类
            $upload->maxSize = 0;
            $upload->rootPath = '.' . $path;
            $upload->savePath = '';
            $upload->saveName = array('uniqid', '');
            $upload->exts = array('jpg', 'gif', 'png', 'jpeg', 'mp4');
            $upload->autoSub = true;
            $upload->subName = array('date', 'Ymd');
            $info=$upload->upload();
            if(!$info){
                $array['code']=0;
                $array['message']=$upload->getError(); // 返回错误信息
                $this->ajaxReturn ($array,'JSON');
                exit();
            }else {
    
                foreach ($info as $value) {
                    $arr[] = '/Upload' . '/' . $value['savepath'] . $value['savename'];
                }
            }
            $this->ajaxReturn($arr); // 返回tp处理过的路径
        }
    

    看完这篇文章,是不是已经解决了你们的困惑,其实仔细研究,还是觉得不是特别的难的!还有什么特别方便的方法,希望大佬们前来打扰。

    相关文章

      网友评论

          本文标题:Tp+Layui 多图上传

          本文链接:https://www.haomeiwen.com/subject/gtkxzhtx.html