这个表格是循环一个数组里的对象生成的,有7个对象和7个上传组件,上传文件后,图中的文本<上传文件>换成已上传文件的文件名,但是<el-upload>并没有提供相应的events把当前点击的对象和当前的上传文件联系起来,如何处理这种情况?自己想了两个办法都行不通
如果通过点击事件来存储点击的对象,因为上传文件是异步的,文件小的几kb上传快,有的文件大的几mb上传慢,如果第一个上传的文件在第二个上传的文件之后完成,那么这样就出错了
问题已经解决了,非常感谢大家的回答
这个表格是循环一个数组里的对象生成的,有7个对象和7个上传组件,上传文件后,图中的文本<上传文件>换成已上传文件的文件名,但是<el-upload>并没有提供相应的events把当前点击的对象和当前的上传文件联系起来,如何处理这种情况?自己想了两个办法都行不通
如果通过点击事件来存储点击的对象,因为上传文件是异步的,文件小的几kb上传快,有的文件大的几mb上传慢,如果第一个上传的文件在第二个上传的文件之后完成,那么这样就出错了
问题已经解决了,非常感谢大家的回答
before-upload
时不是可以获取file吗?
beforeAvatarUpload(file) {
console.log(file.name);
}
这个file.name就是文件名,上传成功后赋值就行了
<el-upload @on-success="handleFileUploaded"></el-upload>
handleFileUploaded(response, file, fileList) {
//response是后台返回给你的数据
//通过后台的返回是功能测试报告还是性能测试报告
//你再把file.name放到相应的对象里去
}
可以用闭包实现:
<el-upload
:on-change="(file, fileList) => onChange(file, fileList, index)"
>
<template #default><i class="el-icon-plus"></i></template>
</el-upload>
onChecksChange(file, fileList, index) {
console.log(file, fileList, index)
},
关键是上面的 index
。使用了闭包的特性。
9 回答1.8k 阅读✓ 已解决
6 回答1.8k 阅读
5 回答1.6k 阅读✓ 已解决
3 回答1.5k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读
2 回答1.3k 阅读✓ 已解决
上传文件的标签要独立,在上传的时候让后台添加一个上传参数为上传文件类型(具体的使用数字还是文字你们决定,只要能区分是什么类型的就可以),上传成功之后要求后台把这个上传时候发过去的文件类型返回,前端做区分。