注:相关链接《10分钟教会你原生JS压缩图片,极其精简版》
什么是base64格式?说到底就是一串字符串,形如data:image/png;base64,iVBORwO…开头的字符串
原本在网页中嵌入一个图片是这样的<img src="photo.png">
使用了base64格式后变成<img src="data:image/png;base64,iVBORw0...">
所以,通过FileReader对象就可以把图片变成base64格式,内嵌至网页中,这样就可以减少对服务器的请求,不过网页体积变大,这个方法适用于嵌入小张图片
(uploadFile) => {
const newFiles = [];
let fileLength = 0;
const reader = new FileReader();
reader.readAsDataURL(uploadFile[fileLength]);
reader.onabort = function() {
console.log('文件读取异常' + uploadFile[fileLength].name);
};
reader.onerror = function() {
console.log('文件读取出现错误' + uploadFile[fileLength].name);
};
reader.onload = function(e) {
// console.log(e);
if (e.target.result) {
newFiles.push(e.target.result);
// console.log('完成' + uploadFile[fileLength].name);
fileLength++;
if (fileLength < uploadFile.length) {
reader.readAsDataURL(uploadFile[fileLength]);
} else {
console.log('遍历完毕');
}
}
};
return new Promise(resolve => {
setTimeout(() => {
resolve(newFiles);
}, 1000);
});
},