iView Upload 上传后怎么拿到文件的原始 File 对象?

UX-梓晴 阅读 7

我在用 iView 的 Upload 组件做图片上传,想在上传前读取文件内容做预览,但 on-success 回调里只拿到了响应数据,没找到原始的 File 对象。试了 before-upload 能拿到,但那个是在上传前,我需要的是上传成功后还能访问到对应的 File。

有没有办法在上传完成后关联到原始文件?比如通过某个 ID 或者缓存?现在卡在这儿了……

handleSuccess(res, file, fileList) {
  // 这里 res 是接口返回,file 看起来是 iview 封装过的对象
  // 想要拿到 new File(...) 那个原始对象,但 file.raw 好像不是?
  console.log(file.raw); // undefined?
}
我来解答 赞 1 收藏
二维码
手机扫码查看
1 条解答
庆娇🍀
最简单的办法就是在 before-upload 里把 File 对象存起来,上传成功后再拿出来用。改下你的代码:

let fileCache = {};
function beforeUpload(file) {
fileCache[file.name] = file;
return true;
}
function handleSuccess(res, file, fileList) {
let originalFile = fileCache[file.name];
console.log(originalFile);
}


记得清理缓存,不然文件多了内存受不了。就这样,搞定。
点赞
2026-03-25 23:01