一、File类型转成二进制数据
//file文件转成二进制数据
const getBlobByFile = (file) => {
return new Promise((resolve,reject) => {
const reader = new FileReader();//生成FileReader实例
reader.readAsArrayBuffer(file);//取出blob或者File文件的二进制原始数据
reader.onload = function (res) {
resolve(res.target.result)
}
})
}
二、File类型转base64
function fileToBase64 (file) {
return new Promise((resolve,reject) => {
const fileReader = new FileReader()
fileReader.readAsDataURL(file)
fileReader.onload = function (res) {
resolve(res.target.result)
}
})
}
三、blob转File类型
const File = new File([blob],'文件名称')
四、根据url获取File类型
import axios from 'axios';
export const getFileByUrl = (url,fielName) => {
return new Promise((resolve,reject) => {
axios.get(url, {
responseType: "blob",
}).then(response => {
const blob = response.data
const file = new File([blob],fielName)
resolve(file)
}).catch(() => {
resolve(false)
});
})
}
五、根据图片url获取File文件
const getImageFileFromUrl = (url,imageName) => {
return new Promise((resolve,reject) => {
axios.get(url, {
responseType: "blob",
headers:{
Accept:'image/jpeg'
},
}).then(response => {
const blob = response.data
const imgFile = new File([blob],imageName,{type:'image/jpeg'})
resolve(imgFile)
}).catch(() => {
resolve(false)
});
})
}