文件上传 new FormData() ,new FileReader()
reader = new FileReader()
reader.readAsDataUrl(file[0]) 基于base64 base64:
reader.readAsArrayBuffer() 基于buffer的 blob文件
reader.readAsBinaryString() 基于二进制格式数据
let fd = new FormData() 二进制
fd.append('file', files[0]); 二进制文件 file:(binary)
base64转blob
dataURLtoBlob(dataurl) {
//base64 转blob
var arr = dataurl.split(',')
var mime = arr[0].match(/:(.*?);/)[1]
var bstr = atob(arr[1])
var n = bstr.length
var u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
return new Blob([u8arr], {
type: mime
})
},
base64转file
base64toFile(dataurl, filename = 'file') {
//base64转file
const arr = dataurl.split(',')
const mime = arr[0].match(/:(.*?);/)[1]
const suffix = mime.split('/')[1]
const bstr = atob(arr[1])
let n = bstr.length
const u8arr = new Uint8Array(n)
while (n--) {
u8arr[n] = bstr.charCodeAt(n)
}
const file = new File([u8arr], `${filename}.${suffix}`, {
type: mime
})
return file
},

浙公网安备 33010602011771号