diff --git a/frontend/admin/src/pages/MediaUploadPage.vue b/frontend/admin/src/pages/MediaUploadPage.vue index f2b63a9..bef3b49 100644 --- a/frontend/admin/src/pages/MediaUploadPage.vue +++ b/frontend/admin/src/pages/MediaUploadPage.vue @@ -19,6 +19,10 @@ const currentFile = ref(null); const uploadHistory = ref([]); const STORAGE_KEY = 'media_upload_history'; +// Add max file size constant (100MB) +const MAX_FILE_SIZE = 300 * 1024 * 1024; +const MAX_FILE_SIZE_DISPLAY = '300MB'; + // Add computed for completed uploads const completedUploads = computed(() => { return uploadHistory.value.filter(item => item.status === 'completed'); @@ -78,10 +82,28 @@ const addToUploadQueue = (files) => { uploadQueue.value.push(...newFiles); }; +// Add file size check +const checkFileSize = (file) => { + if (file.size > MAX_FILE_SIZE) { + toast.add({ + severity: 'error', + summary: '错误', + detail: `文件大小超过限制 (最大 ${MAX_FILE_SIZE_DISPLAY})`, + life: 3000 + }); + return false; + } + return true; +}; + const handleFiles = async (files) => { - addToUploadQueue(files); - if (!isUploading.value) { - processNextUpload(); + // Filter out files that are too large + const validFiles = Array.from(files).filter(checkFileSize); + if (validFiles.length > 0) { + addToUploadQueue(validFiles); + if (!isUploading.value) { + processNextUpload(); + } } }; @@ -294,6 +316,7 @@ onMounted(() => {
拖拽文件到此处或点击上传
支持: MP4, JPG, PNG, GIF, MP4, PDF, DOC
+单个文件最大 {{ MAX_FILE_SIZE_DISPLAY }}