Tp+Layui 多图上传

2020-05-29  本文已影响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处理过的路径
    }

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

上一篇下一篇

猜你喜欢

热点阅读