js咋把base64的数据转换成图片 在网上找了好久只会把图片转成base64~~

直接上代码,要点就是把base64转成Blob,添加到FormData传递给后台程序,跟选择图片文件上传时一样的了。
var dataurl = canvas.toDataURL(\u0026#39;image/png\u0026#39;); //base64图片数据var arr = dataurl.split(\u0026#39;,\u0026#39;), mime = arr.match(/:(.*?);/),bstr = atob(arr), n = bstr.length, u8arr = new Uint8Array(n);while(n--){\tu8arr = bstr.charCodeAt(n);}var obj = new Blob(, {type:mime});var fd = new FormData();fd.append("upfile", obj,"image.png");$.ajax({ url: "/file/upfile", type: "POST", processData: false, contentType: false, data: fd, success: function (data) { \tconsole.log(data); }});//canvas保存图片到本地 (function(t){ var dlLink = t || document.createElement("a"); if(!t){ dlLink.id=\u0026#39;dlLink\u0026#39;; dlLink.download = \u0026#39;文件名\u0026#39;; document.body.appendChild(dlLink); } dlLink.href = https://www.zhihu.com/api/v4/questions/60593079/dataurl; dlLink.click();})(document.querySelector("#dlLink"));
■网友
创建一个image元素指定城src就行了。
\u0026lt;img width="16" height="16" alt="star" src="data:image/gif;base64,R0lGODlhEAAQAMQAAORHHOVSKudfOulrSOp3WOyDZu6QdvCchPGolfO0o/XBs/fNwfjZ0frl3/zy7////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAkAABAALAAAAAAQABAAAAVVICSOZGlCQAosJ6mu7fiyZeKqNKToQGDsM8hBADgUXoGAiqhSvp5QAnQKGIgUhwFUYLCVDFCrKUE1lBavAViFIDlTImbKC5Gm2hB0SlBCBMQiB0UjIQA7" /\u0026gt;
■网友
金老师回答是正确的,图片传到后台其实是二进制流数据,你吧图片转成二进制流就可以了,把图片二进制数据添加到formdata里面就可以提交了吧

■网友
楼上均是答非所问,我现在面临一个问题也是这样,能获取到base64字符串,但是需要转成图片文件传给服务器,有点棘手,有经验的朋友希望指点一二。

■网友
有么有什么方法不上传后台直接把base64转化为图片格式,

■网友
可以用的,但是有个问题,我里面的用户头像是从数据库获取过来的,截图下来的时候,头像就是空的,怎么搞???求指教,angular写的

■网友
问问

■网友
放在image标签的src里就行了,或者你去码工具网上转换一下

■网友
【js咋把base64的数据转换成图片 在网上找了好久只会把图片转成base64~~】 因为直接把base64作为地址就能显示了,所以很少有转换的。


    推荐阅读