diff --git a/src/components/file/upload.vue b/src/components/file/upload.vue index e49dc3a..d6739b7 100644 --- a/src/components/file/upload.vue +++ b/src/components/file/upload.vue @@ -61,7 +61,7 @@ const files = ref(props.files); const allowArchiveFallback = ref(false); const fallbackArchiveExts = ['zip', 'rar', '7z']; const archiveExts = [...fallbackArchiveExts, 'tar', 'gz', 'bz2', 'xz', 'iso', 'dmg']; -const pdfResponseTimeout = 15000; +const uploadResponseTimeout = 15000; const responseTimers = new Map(); function getFileExt(file) { @@ -70,11 +70,11 @@ function getFileExt(file) { } function enableArchiveFallback(file) { - if (getFileExt(file) !== 'pdf') { + if (archiveExts.includes(getFileExt(file))) { return false; } allowArchiveFallback.value = true; - feedback.msgError('PDF上传失败,已临时允许上传一个 ZIP、RAR 或 7Z 压缩包'); + feedback.msgError('文件上传失败,已临时允许上传一个 ZIP、RAR 或 7Z 压缩包'); return true; } @@ -86,15 +86,15 @@ function clearResponseTimer(file) { responseTimers.delete(file?.uid); } -function startPdfResponseTimer(file) { - if (getFileExt(file) !== 'pdf' || responseTimers.has(file?.uid)) { +function startUploadResponseTimer(file) { + if (archiveExts.includes(getFileExt(file)) || responseTimers.has(file?.uid)) { return; } const timer = window.setTimeout(() => { responseTimers.delete(file.uid); uploadRef.value?.abort(file); - handleError(new Error('PDF保存响应超时'), file); - }, pdfResponseTimeout); + handleError(new Error('文件保存响应超时'), file); + }, uploadResponseTimeout); responseTimers.set(file.uid, timer); } @@ -132,11 +132,11 @@ function beforeUpload(file) { if (archiveExts.includes(ext)) { if (!allowArchiveFallback.value) { - feedback.msgWarning('压缩包仅在 PDF 上传失败后允许上传') + feedback.msgWarning('压缩包仅在文件上传失败后允许上传') return false } if (!fallbackArchiveExts.includes(ext)) { - feedback.msgWarning('PDF 上传失败后仅支持 ZIP、RAR 或 7Z 压缩包') + feedback.msgWarning('文件上传失败后仅支持 ZIP、RAR 或 7Z 压缩包') return false } } @@ -149,7 +149,7 @@ function beforeUpload(file) { if (fallbackArchiveExts.includes(ext)) { allowArchiveFallback.value = false; } - if (ext === 'pdf') { + if (!archiveExts.includes(ext)) { allowArchiveFallback.value = false; } files.value.push({ @@ -166,7 +166,7 @@ function uploadProgress(progressEvent, file) { const percent = parseInt(progressEvent.percent); filterFiles[0].percent = Math.min(99, percent); if (percent >= 100) { - startPdfResponseTimer(file); + startUploadResponseTimer(file); } } } @@ -184,7 +184,7 @@ function handleSuccess(data, file) { } return; } - if (getFileExt(file) === 'pdf') { + if (!archiveExts.includes(getFileExt(file))) { allowArchiveFallback.value = false; } if (filterFiles.length) {