export const QUALIFICATION_MAX_FILE_SIZE = 5 * 1024 * 1024 const allowedExtensions = new Set(['jpg', 'jpeg', 'png']) const allowedMimeTypes = new Set(['image/jpeg', 'image/png']) export interface QualificationFileLike { name: string size: number type?: string } export function validateQualificationFile(file: QualificationFileLike) { const extension = file.name.includes('.') ? file.name.split('.').pop()?.toLowerCase() ?? '' : '' if (!allowedExtensions.has(extension)) return '文件格式不支持,请选择 JPG 或 PNG 图片' if (file.type && !allowedMimeTypes.has(file.type)) return '文件内容类型与支持的资质格式不一致' if (file.size <= 0) return '文件内容为空,请重新选择' if (file.size > QUALIFICATION_MAX_FILE_SIZE) return '文件超过 5MB,请压缩后重新选择' return '' } export function formatQualificationFileSize(bytes: number) { if (bytes < 1024) return `${bytes} B` if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB` return `${(bytes / 1024 / 1024).toFixed(1)} MB` }