计算base64文件大小 单位b
// 计算base64文件大小 单位b
function calculatedSize (base64) {
var tag = 'base64'
var baseStr = base64.substring(base64.indexOf(tag) + tag.length)
var eqTagIndex = baseStr.indexOf('=')
baseStr = eqTagIndex !== -1 ? baseStr.substring(0, eqTagIndex) : baseStr
var strLen = baseStr.length
return strLen - (strLen / 8) * 2
}
base64转换file
// base64转换file
function base64ToFile (dataUrl, filename) {
if (!filename) filename = 'file'
var arr = dataUrl.split(',')
var mime = arr[0].match(/:(.*?);/)[1]
var suffix = mime.split('/')[1]
var bstr = atob(arr[1])
var n = bstr.length
var u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new File([u8arr], filename + '.' + suffix, {type: mime})
}
base64转blob
// base64转blob
function base64ToBlob (base64, callback) {
var base64Arr = base64.split(',')
var imgtype = ''
var base64String = ''
if (base64Arr.length > 1) {
base64String = base64Arr[1]
imgtype = base64Arr[0].substring(base64Arr[0].indexOf(':') + 1, base64Arr[0].indexOf(';'))
}
var bytes = atob(base64String)
var bytesCode = new ArrayBuffer(bytes.length)
var byteArray = new Uint8Array(bytesCode)
for (var i = 0; i < bytes.length; i++) {
byteArray[i] = bytes.charCodeAt(i)
}
callback(new Blob([bytesCode], {type: imgtype}))
}
file转base64
// file转base64
function fileToBase64 (file, callback) {
var reader = new FileReader()
reader.readAsDataURL(file)
reader.onload = function (e) {
callback(this.result)
}
}
- blob与file同处理