JS之File對象與base64字符串之間的相互轉換
File對象有兩種形態,
在請求時為:

控制臺輸出為:

從formData中獲得fileList對應的File對象,并轉換為base64字符串,再轉換回File對象,代碼示例如下:
const fileList = uploadFormData.get("fileList");
console.log(fileList);
const reader = new FileReader();
reader.readAsDataURL(fileList);
reader.onload = () => {
imgBase64.value = reader.result;
console.log(imgBase64.value);
console.log(base64ToFile(imgBase64.value, fileList.name));
};
reader.onerror = function (err) {
console.log(err);
};
base64ToFile函數:
const base64ToFile = (base64, fileName) => { let data = base64.split(","); let type = data[0].match(/:(.*?);/)[1]; let suffix = type.split("/")[1]; const bstr = window.atob(data[1]); let n = bstr.length; const u8arr = new Uint8Array(n); while (n--) { u8arr[n] = bstr.charCodeAt(n); } // 利用構造函數創建File文件對象 const file = new File([u8arr], `${fileName}.${suffix}`, { type: type, }); return file; };

浙公網安備 33010602011771號