html2canvas图片生成file格式传送到后台服务器

简介: html2canvas图片生成file格式传送到后台服务器

1.首先将html保存为base64图片
html2canvas.js(可在各cdn进行下载)

html2canvas百度一下代码很多,这里废话不多说,直接上代码
因为是将html里部分保存为图片,所以以下代码实现的是全屏画布上展示需要的部分

var canvas1 = document.createElement("canvas");
let _canvas = document.querySelector('.resDetailRight');//目标块
var bodyW = parseInt(window.getComputedStyle(document.querySelector('html')).width)
var bodyH = parseInt(window.getComputedStyle(document.querySelector('html')).height)
var footH = parseInt(window.getComputedStyle(document.querySelector('.recommend-resume')).height) //多余部分
console.log('canvas:', bodyW, bodyH)
//将canvas画布放大若干倍,然后盛放在较小的容器内,就显得不模糊了
canvas1.width = bodyW * 2;
canvas1.height = (bodyH - footH) * 2;
canvas1.style.width = bodyW + "px";
canvas1.style.height = bodyH - footH + "px";
//关于截取不全的操作,点击触发时需要从顶部获取,故在此将页面滚动到顶部然后在执行
document.documentElement.scrollTop = 0;
document.body.scrollTop = 0;
var context = canvas1.getContext("2d");
context.scale(2, 2);
html2canvas(_canvas, {
  canvas: canvas1
}).then(function (canvas) {
   //document.body.appendChild(canvas); //直接在底部展示该图
   file = canvas.toDataURL("image/png");
   //canvas转换成url,然后利用a标签的download属性,直接下载,绕过上传服务器再下载
   // document.querySelector(".down").setAttribute('href', canvas.toDataURL());
});

2.将获取的图片转换为文件格式

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

3.通过ajax将文件传给后端服务器

var formData = new FormData();
let blob= dataURLtoFile(file, 'image/jpeg')
let fileOfBlob = new File([blob], new Date()+'.jpg')
    formData.append('file', fileOfBlob);
    $.ajax({
    url: "/gateway/system/plug/resume/upload",
    type: "post",
    data: formData,
    headers:{
       'Authorization':'bearer '+sessionStorage.getItem("token")
    },
    contentType: false,
    processData: false,
    success: function (res) {
        let resumeInfo = res.result
    //sendResumeInfo(tabId, resumeInfo)
    checkRepeat(tabId, JSON.stringify(resumeInfo))
    },
    error: function (data) {
        alert("上传失败")
        }
   });

至此功能开发完成。

相关文章
|
2月前
|
移动开发 前端开发 JavaScript
基于 HTML5 和 Canvas 开发的在线图片编辑器
基于 HTML5 和 Canvas 开发的在线图片编辑器
59 0
|
11天前
|
前端开发 Windows
【前端web入门第一天】02 HTML图片标签 超链接标签 音频标签 视频标签
本文档详细介绍了HTML中的图片、超链接、音频和视频标签的使用方法。首先讲解了`&lt;img&gt;`标签的基本用法及其属性,包括如何使用相对路径和绝对路径。接着介绍了`&lt;a&gt;`标签,用于创建超链接,并展示了如何设置目标页面打开方式。最后,文档还涵盖了如何在网页中嵌入音频和视频文件,包括简化写法及常用属性。
28 13
|
23天前
|
移动开发 HTML5
HTML5文档基本格式
【8月更文挑战第28天】HTML5文档基本格式。
28 4
|
20天前
在线将多张图片拼接起来图工具HTML源码
在线将多张图片拼接成一张图片,多图合一并导出下载。无需本地安装软件。 下载时,使用日期时间作为文件名,规避图片文件名相同造成的覆盖问题;也能省去一部覆盖确认操作 多语言支持
23 0
在线将多张图片拼接起来图工具HTML源码
|
1月前
|
存储 JavaScript 前端开发
Vue中实现图片上传,上传后的图片回显,存储图片到服务器 【使用对象存储OSS】
这篇文章介绍了在Vue中实现图片上传到阿里云OSS对象存储服务的完整流程,包括服务端签名直传的前提知识、后端设置、前端组件封装以及图片上传和回显的效果展示。
|
1月前
|
Python
Python 下载 html 中的 图片
Python 下载 html 中的 图片
21 2
|
23天前
|
数据可视化 Python
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
20 0
|
2月前
|
数据采集 缓存 自然语言处理
PHP将HTML标签转化为图片
通过这个方法,PHP后端能够实现将HTML内容转化为图片的功能。这种方式虽然牵涉到一些额外的安装和配置,但能够相对灵活且稳定地解冀转换需求,适用于需要在后端动态生成图片的场景。
51 1
|
2月前
|
自然语言处理 开发者 Python
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
|
2月前
|
JavaScript 前端开发 CDN
vue 生成分享海报、下载图片(含生成二维码qrcodejs2的使用,网页截屏html2canvas的使用)
vue 生成分享海报、下载图片(含生成二维码qrcodejs2的使用,网页截屏html2canvas的使用)
27 0
vue 生成分享海报、下载图片(含生成二维码qrcodejs2的使用,网页截屏html2canvas的使用)

热门文章

最新文章