首先放上 MDN文檔地址
使用場景:因業務需要使用到了 Ant Design 的 Upload 組件上傳文件。當上傳文件為圖片格式時,會自帶一個 thumbUrl 屬性,值為縮略圖的base64格式。
因業務需求是用作 OCR 識別,因此縮略圖是不行的,需要使用原圖,否則識別不准,不滿足產品需求。
因此,就需要使用手動轉換,因此用到了 FileReader 。
代碼如下:
// 圖片文件轉為 base64
getPictureBase64 = (file) => {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => resolve(reader.result);
reader.onerror = (error) => reject(error);
});
};
// 使用 frontFile, backFile 為 upload 組件得到的文件列表
onSubmit = async () => {
const { frontFile, backFile, cardType } = this.state;
let imgFrontFileUrl = await this.getPictureBase64(frontFile[0].originFileObj);
let imgBackFileUrl = await this.getPictureBase64(backFile[0].originFileObj);
};