fix:图片、文件上传失败时,后续无法上传的问题 https://github.com/yudaocode/yudao-ui-admin-vue3/issues/86

This commit is contained in:
YunaiV
2025-07-26 20:48:43 +08:00
parent f659899f8e
commit 2773b0ec24
2 changed files with 18 additions and 4 deletions

View File

@ -122,7 +122,9 @@ const beforeUpload: UploadProps['beforeUpload'] = (file: UploadRawFile) => {
return false
}
message.success('正在上传文件,请稍候...')
// 只有在验证通过后才增加计数器
uploadNumber.value++
return true
}
// 处理上传的文件发生变化
// const handleFileChange = (uploadFile: UploadFile): void => {
@ -149,6 +151,8 @@ const handleExceed: UploadProps['onExceed'] = (): void => {
// 上传错误提示
const excelUploadError: UploadProps['onError'] = (): void => {
message.error('导入数据失败,请您重新上传!')
// 上传失败时减少计数器,避免后续上传被阻塞
uploadNumber.value = Math.max(0, uploadNumber.value - 1)
}
// 删除上传文件
const handleRemove = (file: UploadFile) => {

View File

@ -97,20 +97,28 @@ const uploadList = ref<UploadUserFile[]>([])
const beforeUpload: UploadProps['beforeUpload'] = (rawFile) => {
const imgSize = rawFile.size / 1024 / 1024 < props.fileSize
const imgType = props.fileType
if (!imgType.includes(rawFile.type as FileTypes))
const isValidType = imgType.includes(rawFile.type as FileTypes)
const isValidSize = imgSize
if (!isValidType)
ElNotification({
title: '温馨提示',
message: '上传图片不符合所需的格式!',
type: 'warning'
})
if (!imgSize)
if (!isValidSize)
ElNotification({
title: '温馨提示',
message: `上传图片大小不能超过 ${props.fileSize}M`,
type: 'warning'
})
uploadNumber.value++
return imgType.includes(rawFile.type as FileTypes) && imgSize
// 只有在验证通过后才增加计数器
if (isValidType && isValidSize) {
uploadNumber.value++
}
return isValidType && isValidSize
}
// 图片上传成功
@ -172,6 +180,8 @@ const uploadError = () => {
message: '图片上传失败,请您重新上传!',
type: 'error'
})
// 上传失败时减少计数器,避免后续上传被阻塞
uploadNumber.value = Math.max(0, uploadNumber.value - 1)
}
// 文件数超出提示