FILE
base64 图片转文件
function dataURLtoFile(dataurl, filename) {
const arr = dataurl.split(",");
const mime = arr[0].match(/:(.*?);/)[1];
const bstr = window.atob(arr[1]);
let n = bstr.length;
const u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new File([u8arr], filename, { type: mime });
}
文件内容生成md5
import SparkMd5 from 'spark-md5'
function generateMd5fromFile(file) {
return new Promise((resolve, reject) => {
const sliceLength = 10
const chunkSize = Math.ceil(file.size / sliceLength)
const fileReader = new FileReader()
const md5 = new SparkMd5()
let index = 0
const loadFile = () => {
const slice = file.slice(index, index + chunkSize)
fileReader.readAsBinaryString(slice)
}
loadFile()
fileReader.onload = e => {
md5.appendBinary(e.target.result)
if (index < file.size) {
index += chunkSize
loadFile()
} else {
const sqlexecmd5 = md5.end()
resolve(sqlexecmd5)
}
}
})
}
Blob转File
let files = new File([this.blob], file.name, {type: file.type})
File转Blob
const blob = new Blob([file], { type: fileType || 'application/*' })
const blobUrl = window.URL.createObjectURL(blob)