base64与二进制互转,保存内容,文件读写:Blob/FileReader/URL/FormData
Author:zhoulujun Date:
html5开发常用的对象有:FileReader FormData File URL Blob createObjectURL Uint8Array等,这些在日常开发中,需要做图片转base64,base64转而二进制文件,页面截图让用户下载。
base64解码编码:atob/btoa
atob() 方法用于解码使用 base-64 编码的字符串。base-64 编码使用方法是 btoa() 。
var str = 'RUNOOB' var enc = window.btoa(str) var dec = window.atob(enc) var res = '编码字符串为: ' + enc + '<br>' + '解码后字符串为: ' + dec
DataURL转二进制:Base64/Uint8Array
function dataURLtoBlob (dataurl) { var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n) while (n--) { u8arr[n] = bstr.charCodeAt(n) } return new Blob([u8arr], { type: mime }) }
DataURL转文件:Uint8Array/File/charCodeAt
DataURL,如base64 图片, “data:image/png;base64,****”,逗号之前都是一些说明性的文字,我们只需要逗号之后的就行了
function dataURLtoFile (dataurl, filename) { // 风格字符串 data:image/png;base64,****” var arr = dataurl.split(',') // 获取文件类型 data:text/plain; var mime = arr[0].match(/:(.*?);/)[1] // 解码base-64字符串 var bstr = atob(arr[1]) var n = bstr.length, u8arr = new Uint8Array(n) while (n--) { u8arr[n] = bstr.charCodeAt(n) } return new File([u8arr], filename, {type: mime}) } var blob = dataURLtoBlob('data:text/plain;base64,YWFhYWFhYQ==');
js字符串的存储方式及方法charAt(),charCodeAt(),codePointAt()用法总结
charAt() 方法可返回指定位置的字符(Unicode编码),中英文都是一个字符(中文需要4个字节存储)
charCodeAt()方法返回前两个字节和后两个字节的Unicode值
codePointAt()能够正确处理4个字节储存的字符,返回一个字符的码点(超过0xFFFF的字符也可以直接返回码点)
var s = "
转载本站文章《base64与二进制互转,保存内容,文件读写:Blob/FileReader/URL/FormData》,
请注明出处:https://www.zhoulujun.cn/html/webfront/SGML/web/2019_0920_8156.html