文件上传 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 },