Arco Upload上传后怎么拿到文件的base64?
我用 Arco Design 的 Upload 组件上传图片,想在上传前预览,但不知道怎么把选中的文件转成 base64。试了 onChange 里的 file 对象,但直接读取好像不行。
网上查到要用 FileReader,但结合 Arco 的写法有点懵,有没有人给个完整例子?
const handleBeforeUpload = (file) => {
const reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = () => {
console.log(reader.result); // 这里能拿到 base64 吗?
};
return false; // 阻止自动上传
};
readAsDataURL方法需要传入File对象,而不是直接传整个file参数。这里给你一个更好的写法:
顺便说下,如果要处理多个文件,可以在
onChange事件中遍历fileList,对每个文件都执行类似操作。这个过程确实有点繁琐,但没办法,前端就是这样,总有些细节要注意。另外提醒一下,记得在使用前判断一下
file.file是否存在,有时候用户可能会选中不符合要求的文件类型,这种情况下就不会有file.file属性了。