js中截取上传的图片上传到后台

先上效果图

js中截取上传的图片上传到后台_第1张图片

 

 

前端代码:

使用的bootstrap-modal

<%-- 需要的css --%>





<%--图片上传modal--%>


<%-- 这里是需要导入的js --%>




 




上面的这些css 和js 可以在这里下载:https://download.csdn.net/download/wlj_wangjun/11777716

下载后解压后如图:里面有两个压缩包,功能页面差不多,我这里使用的 12057.zip这个列子。

js中截取上传的图片上传到后台_第2张图片jquery.js  和bootstrap相关的js 和 css  可以从网上下载。

js中 点击保存按钮 

    /**
     * 点击 上传图片模态框保存按钮
     */
    $(".avatar-save").on("click", function () {
        var img_lg = document.getElementById('imageHead');

        if ($("#imageHead:has(img)").length == 0) {
            toastr.warning("请选择图片");
            return;
        }
        html2canvas(img_lg, {
            allowTaint: true,
            taintTest: false,
            onrendered: function (canvas) {
                canvas.id = "mycanvas";
                //生成base64图片数据
                var dataUrl = canvas.toDataURL("image/jpeg");
                var newImg = document.createElement("img");
                newImg.src = dataUrl;
                saveBase64Img(dataUrl);
            }
        });

    });

    /**
     * 保存图片
     */
    function saveBase64Img(base64Data) {
        Jm.doPost({
            url: "/pages/module/goodsManager/uploadBase64Img",
            cache: false,
            async: false,
            data: base64Data,
            success: function (result) {
               alert("保存成功")
            }
        });
    }

java 后台接受 base64格式的图片

    //controller 
    @PostMapping("/uploadBase64Img")
    @ResponseBody
    public ResultVO uploadBase64Img(@RequestBody String base64Data) {
        return shopGoodsManagerService.uploadBase64Img(base64Data);
    }

service 层中自己处理。

 

 

当第一次打开 modal后,选中图片,不管是否点击保存,关闭模态框,第二次打开  avatar-modal,会显示上一次的图片,这个问题困扰了很久,最后找到了解决办法。

在打开模态框 avatar-modal 之前 调用此方法。

/**
  * 打开图片上传 模态框
 */
 function openModal(){
    //清除历史图片记录
    clearAvatarModal();
    $("#avatar-modal").modal("show");
}


    /**
     * 清除 截取图片的modal 历史图片
     */
    function clearAvatarModal() {
        //清除上一次选中的图片
        $(".avatar-wrapper .cropper-bg").remove();
        $(".avatar-wrapper img").attr("src", "");
        $("#imageHead").empty();
    }

 

你可能感兴趣的:(java,js)