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号