jQuery + lrz 实现本地压缩后上传图片

本地压缩插件 https://github.com/think2011/localResizeIMG

/**
 *  本地图片压缩后上传
 */
$("#vfile").change(function(){
    var _this = $(this);
    lrz(this.files[0]).then(function(data) {
        return upload(_this.get(0) , data.formData);
    }).then(function(data) {
        // data => 上传成功后返回的JSON数据
        // TODO::处理逻辑
    }).catch(function(err) {
        console.log(err);
    });
});

/**
 *  直接上传原图
 */
$("#vfile").change(function(){
    upload(this).then(function(data) {
        // data => 上传成功后返回的JSON数据
        // TODO::处理逻辑
    }).catch(function(err) {
        console.log(err);
    });
});


/**
 * 图片上传 后端正常处理图片
 * @param selector 文件域DOM Obj [必选]
 * @param formData 文件上传formData [可选]
 */
function upload(selector , formData) {
    if(!formData) {
        formData = new FormData();
        formData.append("file", $(selector)[0].files[0]);
    }

    var url = "{:U('Wap/Public/ajaxSingleUpload')}";
    return new Promise(function(resolve,reject){
        $.ajax({
            url : url,
            type : 'POST',
            data : formData,
            processData : false,
            contentType : false,
            dataType:"json",
            success : function(response) {
                resolve(response);
            },
            error : function(response) {
                reject(response);
            }
        });
    });
}

你可能感兴趣的:(jQuery + lrz 实现本地压缩后上传图片)