文件上传组件回调函数获取不到res数据

Blade 已结 1 116
pump
pump 剑童 2025-02-11 09:25

一、该问题的重现步骤是什么?

1. 参考了用户导入洁面的avue-form文件上传功能实现数据导入,并将导入失败的数据以excel形式返回

2. 在uploadAfter回调函数里面打印了res数据

3.点击上传文件,接口调用成功network里面也有返回数据,但是回调函数里面res打印结果是undefined


二、你期待的结果是什么?实际看到的又是什么?


导入之后如果有失败的数据会在uploadAfter回调函数里面调用downloadXls方法进行文件的下载,但实际上对res进行打印发现是undefined

三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex微服务版本 4.3.0.RELEASE

四、请提供详细的错误堆栈信息,这很重要。

network返回数据

1739236895784_d.png

console输出结果

image.png

五、若有更多详细信息,请在下面提供。

部分代码

1739236799509_d.png

image.png


1条回答
  •  admin
    admin (最佳回答者)
    2025-02-11 10:08

    uploadAfter好像不能是返回流类型的接口,他转换会失败,所以res是空。

    上传失败的时候你把数据缓存一下,再抛异常,然后会进入uploadError,你在uploadError里调用下载缓存数据的接口,下载完毕把缓存删掉。

    作者追问:2025-02-11 10:08

    感谢回答,请问下缓存是怎么做,是在先后端将错误的文件存为缓存文件吗,有没有类似的例子呀

    回答: 2025-02-11 10:08

    将错误的数据先通过bean或者map的形式存到redis,然后前端通过一个key去调用接口,接口根据key获取缓存的bean,再转换成文件流返回,返回时清空redis,或者让redis30分钟后自动删除。这样前端就能通过download方法下载文件了。

    作者追问:2025-02-11 10:08

    好的,谢谢了!

    0 讨论(1)
代码语言
提交回复