html2canvas 将html转成图片,并传给后端

这篇博客探讨了如何使用html2canvas库将HTML元素转换为canvas,然后将canvas转换为图片并进行上传。主要涉及的功能包括:图片数据URL的转换、文件的创建、FormData的使用以及Ajax进行文件上传。同时,还介绍了模拟点击下载图片的方法。
摘要由CSDN通过智能技术生成
调用:
htmlTransImage('#app', { width: 300},
function(data){
	console.log(data)
},
function(err){
	console.log('上传失败')
})


function htmlTransImage(dom,arg,success,error) {
    html2canvas(document.querySelector('#app'), { width: arg.width || 'auto' }).then(function (canvas) {
        // mockClick(canvas,'#imageBox'); // 将图片存储到本地,且插入到页面上的img标签中展示
		var file = canvas.toDataURL("image/png");
        var formData = new FormData();
        var  blob = dataURLtoFile(file, 'image/jpeg')
        var  fileOfBlob = new File([blob], new Date() + '.jpg')
        formData.append('file', fileOfBlob);
        $.ajax({
            url: "/Manage/UpLoadImage",
            type: "post",
            data: formData,
            contentType: false,
            processData: false,
            success: function (res) {
                success(res)
            },
            error: function (err) {
                error(err)
            }
        });
    })
}

function dataURLtoFile(dataURI, type) {
    var  binary = atob(dataURI.split(',')[1]);
    var  array = [];
    for (var  i = 0; i < binary.length; i++) {
        array.push(binary.charCodeAt(i));
    }
    return new Blob([new Uint8Array(array)], { type: type });
}

function mockClick(canvas,node){
 	var imgUrl = canvas.toDataURL('image/jpeg')
    var image = document.createElement('img')
    image.src = imgUrl
    // 将生成的图片放到 类名为 node 的元素中
    document.querySelector(node).appendChild(image)
    var  dom = document.createElement('a')
    dom.href = imgUrl
    // dom .download 后面的内容为自定义图片的名称
    dom .download = 'approval-process'
    dom .click()
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值