Arco Upload上传后怎么拿到文件的临时路径?
我在用 Arco Design 的 Upload 组件做图片上传预览,想在用户选完文件后立刻显示缩略图。但文档里说 on-change 回调返回的是 file 对象,我试了 file.url 和 file.thumbUrl 都是 undefined,根本没法预览。
查了下好像得用 URL.createObjectURL() 手动生成?但不确定是不是最佳做法。有没有人知道 Arco Upload 选完文件后怎么正确获取能直接用在 img 标签里的临时路径?
const handleChange = (fileList) => {
const file = fileList[0]?.originFile;
if (file) {
const url = URL.createObjectURL(file);
setPreviewUrl(url); // 这样做对吗?
}
};
直接用
URL.createObjectURL(file)生成的就是能在 img 标签里直接用的临时路径,没问题。不过有个小坑要注意:这个 URL 是内存里的临时对象,不用的时候最好手动释放一下,不然会造成内存泄漏。可以在组件里这样处理:
还有一点,你代码里用的是
fileList[0]?.originFile,这里要确认一下你用的是单文件上传还是多文件。单文件模式这样取没问题,如果是多文件就遍历 fileList 处理。如果你的场景是上传到后端返回 URL 的那种, Arco 也支持自动生成预览,它内部会处理,但那是走上传流程的了,跟你这个即时预览需求不一样。