| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 | $(function () {    setTimeout(uploaderInput,1000);    function uploaderInput(){        // 允许上传的图片类型        var allowTypes = ['image/jpg', 'image/jpeg', 'image/png', 'image/gif'];        var maxSize = 1024 * 1024*20; // 10240KB,也就是 10MB        var maxWidth = 1900;  // 图片最大宽度        //        var $gallery = $("#gallery"),            $galleryImg = $("#galleryImg"),            $uploaderInput = $("#uploaderInput"),            $uploaderFiles = $("#uploaderFiles");        $uploaderInput.on("change",function (e) {            files = e.target.files;            // 如果没有选中文件,直接返回            if (files.length === 0) {                return;            }            for (var i = 0, len = files.length; i < len; ++i) {                var file = files[i];                var imgID = genGUID();                var reader = new FileReader();                var fileType = file.type;                // 如果类型不在允许的类型范围内                if (allowTypes.indexOf(file.type) === -1) {                    $.toast('该类型不允许上传' + fileType);                    continue;                }                if (file.size > maxSize) {                    $.toast("图片太大,不允许上传");                    continue;                }                // if ($('.weui-uploader__file').length >= maxCount) {                //     $.toast('最多只能上传' + maxCount + '张图片', "forbidden");                //     return;                // }                var base64;                reader.onload = function (e) {                    $.showLoading("上传中");                    var img = new Image();                    img.onload = function () {                        // 不要超出最大宽度                        var w = Math.min(maxWidth, img.width);                        // 高度按比例计算                        var h = img.height * (w / img.width);                        var canvas = document.createElement('canvas');                        var ctx = canvas.getContext('2d');                        // 设置 canvas 的宽度和高度                        canvas.width = w;                        canvas.height = h;                        ctx.drawImage(img, 0, 0, w, h);                        base64 = canvas.toDataURL(fileType,0.6); //0.6指的是压缩60%                        // 插入到预览区                        // $uploaderFiles.find('.upload_imgs').before($(tmpl.replace('#url#', base64).replace('#ImgID#', imgID)));                        // var num = $('.weui-uploader__file').length;                        // $('#uploadCount').text(num);                        // 模拟上传进度                        // var progress = 0;                        // function uploading() {                        //     $uploaderFiles.find('.weui_uploader_status_content').text(++progress + '%');                        //     if (progress < 100) {                        //         setTimeout(uploading, 30);                        //     } else {                        //         $uploaderFiles.removeClass('weui_uploader_status').find('.weui_uploader_status_content').remove();//清除上传进度图标                        //     }                        // }                        // setTimeout(uploading, 30);                    };                    img.src = e.target.result;                    var FormDatas = new FormData();                    FormDatas.append("file", file);                    //这里实现上传                    $.ajax({                        url: uploadUrl,                        type: 'POST',                        data: FormDatas,                        contentType: false,                        processData: false,                        success: function (res) {                            if (res.code === '200') {                                var str = `                            <li class="weui-uploader__file" img-Url="${res.data.fullURL}" id="${imgID}" style="background-image:url(${base64})"><div class="weui_uploader_status_content">0%</div></li>`;                                $uploaderFiles.find('.upload_imgs').before(str);                                var num = $('.weui-uploader__file').length;                                $('#uploadCount').text(num);                                var progress = 0;                                function uploading() {                                    $uploaderFiles.find('.weui_uploader_status_content').text(++progress + '%');                                    if (progress < 100) {                                        setTimeout(uploading, 30);                                    } else {                                        $uploaderFiles.removeClass('weui_uploader_status').find('.weui_uploader_status_content').remove();//清除上传进度图标                                        $.toast("上传成功")                                        $.hideLoading();                                    }                                }                                setTimeout(uploading, 30);                            }else {                                $.toast("上传失败",'forbidden');                                $.hideLoading();                            }                        },                        error:function () {                            $.toast("上传失败,请检查网络!",'forbidden');                            $.hideLoading();                        }                    })                };                reader.readAsDataURL(file);            }        });        function genGUID() {            var G1 = (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1) + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);            var G2 = (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1) + (((1 + Math.random()) * 0x10000) | 0).toString(16).substring(1);            return (G1 + G2);        }        var index; //第几张图片        $uploaderFiles.on("click", ".weui-uploader__file", function () {            index = $(this).index();            $galleryImg.attr("style", this.getAttribute("style"));            $gallery.fadeIn(100);        });        $gallery.on("click", function () {            $gallery.fadeOut(100);        });        //删除图片        $(".weui-gallery__del").click(function () {            $uploaderFiles.find("li").eq(index).remove();            var num = $('.weui-uploader__file').length;            $('#uploadCount').text(num);        });    }});
 |