Skip to content

Commit 2773b0e

Browse files
committed
fix:图片、文件上传失败时,后续无法上传的问题 #86
1 parent f659899 commit 2773b0e

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/components/UploadFile/src/UploadFile.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,9 @@ const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => {
122122
return false
123123
}
124124
message.success('正在上传文件,请稍候...')
125+
// 只有在验证通过后才增加计数器
125126
uploadNumber.value++
127+
return true
126128
}
127129
// 处理上传的文件发生变化
128130
// const handleFileChange = (uploadFile: UploadFile): void => {
@@ -149,6 +151,8 @@ const handleExceed: UploadProps['onExceed'] = (): void => {
149151
// 上传错误提示
150152
const excelUploadError: UploadProps['onError'] = (): void => {
151153
message.error('导入数据失败,请您重新上传!')
154+
// 上传失败时减少计数器,避免后续上传被阻塞
155+
uploadNumber.value = Math.max(0, uploadNumber.value - 1)
152156
}
153157
// 删除上传文件
154158
const handleRemove = (file: UploadFile) => {

src/components/UploadFile/src/UploadImgs.vue

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -97,20 +97,28 @@ const uploadList = ref<UploadUserFile[]>([])
9797
const beforeUpload: UploadProps['beforeUpload'] = (rawFile) => {
9898
const imgSize = rawFile.size / 1024 / 1024 < props.fileSize
9999
const imgType = props.fileType
100-
if (!imgType.includes(rawFile.type as FileTypes))
100+
const isValidType = imgType.includes(rawFile.type as FileTypes)
101+
const isValidSize = imgSize
102+
103+
if (!isValidType)
101104
ElNotification({
102105
title: '温馨提示',
103106
message: '上传图片不符合所需的格式!',
104107
type: 'warning'
105108
})
106-
if (!imgSize)
109+
if (!isValidSize)
107110
ElNotification({
108111
title: '温馨提示',
109112
message: `上传图片大小不能超过 ${props.fileSize}M!`,
110113
type: 'warning'
111114
})
112-
uploadNumber.value++
113-
return imgType.includes(rawFile.type as FileTypes) && imgSize
115+
116+
// 只有在验证通过后才增加计数器
117+
if (isValidType && isValidSize) {
118+
uploadNumber.value++
119+
}
120+
121+
return isValidType && isValidSize
114122
}
115123
116124
// 图片上传成功
@@ -172,6 +180,8 @@ const uploadError = () => {
172180
message: '图片上传失败,请您重新上传!',
173181
type: 'error'
174182
})
183+
// 上传失败时减少计数器,避免后续上传被阻塞
184+
uploadNumber.value = Math.max(0, uploadNumber.value - 1)
175185
}
176186
177187
// 文件数超出提示

0 commit comments

Comments
 (0)