一张 base64 图片格式的图片,将其转化成 blob 而后上传到服务器
需要形容
一张 base64 图片格式的图片,将其转化成 blob 而后上传到服务器,后盾跟接管表单文件上传一样的形式去解决改图片
实现
// url 示意 base64 的字符串,name 示意文件名,附加到 blob 上的那么、上
uploadFile(url, name) {
// 以逗号划分类型和内容
let arr = url.split(',')
// 截取类型
let mime = arr[0].match(/:(.*);/)[1]
// 将 base64 格局的字符转回本来的字符格局
let bstr = window.atob(arr[1])
let n = bstr.length,
u8arr = new Uint8Array(n)
while (n--) {
// 将 ascll 码值贮存到无符号数组中
u8arr[n] = bstr.charCodeAt(n)
}
// 转化 blob
let blob = new Blob([u8arr], {type: mime})
blob.lastModifiedDate = new Date()
blob.name = name
// 结构 FormData
let formData = new FormData();
formData.append('time', moment().format('YYYYMMDD'))
formData.append('file', blob)
console.log(blob)
// 发送申请
stationData.uploadImg(formData).then(res => {console.log('aasad', res)
})
},
总结
这里是通过 blob 能够接管一个 ArrayBuffer 的参数的模式去创立一个 blob。