function ImageFileResize(file, maxWidth, maxHeight, callback) {
        var Img = new Image;
        var canvas = document.createElement('canvas');
        var ctx = canvas.getContext('2d');

        Img.onload = function() {
            if (Img.width>maxWidth || Img.height>maxHeight) {
                var bili = Math.max(Img.width/maxWidth, Img.height/maxHeight);
                canvas.width = Img.width/bili;
                canvas.height = Img.height/bili;
            }else{
                canvas.width = Img.width;
                canvas.height = Img.height;
            }
            ctx.drawImage(Img, 0, 0, Img.width, Img.height, 0, 0, canvas.width, canvas.height);

//            $('body').append(canvas);
            callback(canvas.toDataURL());
        };

        try{
            Img.src = window.URL.createObjectURL(file);
        }catch(err){
            try{
                Img.src = window.webkitURL.createObjectURL(file);
            }catch(err){
                alert(err.message);
            }
        }
    }

    $('.js-uploader').on('click', function () {
        var $clickObj = $(this);
        var $fileInput = $('<input type="file"/>');

        $fileInput.on('change',function () {
            $clickObj.text('正在上传...');

            ImageFileResize($fileInput[0].files[0], 800, 800, function (dataUrl) {
                $.ajax({
                    type: "POST",
                    url: "<?=$this->createMobileUrl('Upload')?>",
                    data: {imgDatUrl:dataUrl},
                    success : function (ret) {
                        $clickObj.prev().remove();
                        $clickObj.before("<img src=\"" + dataUrl + "\"/> ");
                        $clickObj.next().val(ret.path);
                        $clickObj.text('重新上传');
                    },
                    dataType : "json"
                });
            });
        });

        $fileInput.click();
    });

王道中强流
1.7k 声望44 粉丝

在福州“土生土长”的 1986 年老程序员一枚,专注 Web 技术三十年。