Vue之AntDesignVue之「a-upload」上传文件列表删除列表中的某个待上传文件时,出现预期想删除的文件与实际删除的文件不一致的问题

这是官网的参考方法

 于是参考此方法,采用beforeUpload 返回 false 后,手动上传文件的上传方法。

这是我的写法

<template>:

js:

@change

 

remove:

 

before-upload:

 

浏览器效果:

添加一个:

 

添加第二个:

 

此时删除最后上传的'测试2.txt'文件,最终结果确实是符合期望的,但是能看到文件列表fileList[]的数组下表index为-1,已经显示异常

 

如果先删除最先上传的'测试1.doc',则会发现删除的是'测试2.txt','测试1.doc'依然存在文件列表fileList[]下,仅仅是页面展示效果看起来是“删除了”

 

原因:

官方提供的before-upload跟remove方法的传入参数其实不一样,beforeUpload的传入是一个file类型,而remove传入的是一个被antD包装过的类型,需要剥...但是官网的示例是没有剥的,两个方法的参数都是一样的,前端同事小伙伴再其电脑帮忙调试后也感到迷惑,在他那边不需要指定file.originFileObj仅传file就能实现效果,并没有出现我的错误....并且antD版本均是1.5.3

 

修改后效果正常(上面的remove()方法中的注释正确写法替换实例写法):

可以看到此时数组下表index=0是正常的,删除的为fileList[0]的'测试1.doc'。

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ant Design Vue 1.7.8 版本中,a-upload 组件可以使用自己封装的接口进行上传文件。你可以在 a-upload 组件的 `customRequest` 属性中指定一个自定义的上传函数,该函数将会代替默认的上传行为。 下面是一个示例代码,演示了如何使用自定义的上传函数上传文件: ```html <template> <a-upload :action="uploadUrl" :custom-request="customUpload" > <a-button icon="upload">上传文件</a-button> </a-upload> </template> <script> import { Upload } from 'ant-design-vue' export default { components: { 'a-upload': Upload }, data () { return { uploadUrl: '/api/upload' } }, methods: { customUpload ({ file, onSuccess, onError, onProgress }) { const xhr = new XMLHttpRequest() xhr.open('POST', this.uploadUrl) xhr.setRequestHeader('Content-Type', 'multipart/form-data') xhr.upload.onprogress = e => { if (e.total > 0) { e.percent = (e.loaded / e.total) * 100 } onProgress({ percent: e.percent }, file) } xhr.onload = e => { if (xhr.status === 200) { onSuccess(JSON.parse(xhr.responseText), file) } else { onError(xhr.statusText, file) } } xhr.onerror = e => { onError(xhr.statusText, file) } const formData = new FormData() formData.append('file', file) xhr.send(formData) } } } </script> ``` 在上述代码中,我们定义了一个 `customUpload` 函数,它接收一个包含上传文件信息和回调函数的对象参数。在这个函数中,我们使用 XMLHttpRequest 发送一个 POST 请求,将文件上传到指定的 URL。在上传过程中,我们监听了 `xhr.upload.onprogress` 事件,以便在文件上传进度发生变化更新进度条。在上传完成后,根据服务器返回的结果执行相应的回调函数。 最后,我们将 `customUpload` 函数作为 `a-upload` 组件的 `customRequest` 属性的值,以便在上传文件使用该函数代替默认的上传行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值