ALLOWED_MIMES
ALLOWED_MIMES = [
// 图片(不含 svg)
'image/jpeg',
'image/png',
'image/gif',
'image/webp',
'image/bmp',
'image/x-ms-bmp',
// 文档
'application/pdf',
'application/msword',
'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
'application/vnd.ms-excel',
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
'application/vnd.ms-powerpoint',
'application/vnd.openxmlformats-officedocument.presentationml.presentation',
'text/plain',
'text/csv',
// 压缩包
'application/zip',
'application/x-zip-compressed',
'application/x-rar-compressed',
'application/vnd.rar',
'application/x-7z-compressed',
'application/x-tar',
'application/gzip',
'application/x-gzip',
// 音视频(与 FileUploadHelper::$fileTypeMap 扩展名白名单保持同一允许集)
'audio/mpeg',
'audio/wav',
'audio/x-wav',
'video/mp4',
'video/x-msvideo',
'video/quicktime',
'video/x-ms-wmv',
'video/x-ms-asf',
'video/x-flv',
'video/webm',
'video/x-rmvb',
'video/x-rm',
// 电子书
'application/epub+zip',
'application/x-mobipocket-ebook',
// 字体(含 fileinfo 旧别名变体)
'font/ttf',
'font/otf',
'font/woff',
'font/woff2',
'application/x-font-ttf',
'application/x-font-otf',
'application/x-font-woff',
// 其他(文本/配置类)
'application/json',
'application/x-yaml',
'text/yaml',
'text/x-yaml',
]
允许上传的 MIME 白名单(内容嗅探,按真实 MIME 名匹配;svg 移除——防存储型 XSS)。
注意:Laravel 的 mimetypes 规则只接受 MIME 类型名(如 image/jpeg)或“类型/*”通配, 不接受扩展名(jpg/png 等一律匹配不上,会导致所有文件都被拒)。 此处包含 fileinfo 常见别名(如 image/x-ms-bmp、application/x-zip-compressed、video/x-ms-asf), 避免同一格式因 libmagic 版本差异被误拒。
可配置:优先读 FILE 分组 file.allowed_mimes(逗号分隔), 留空/配置失效回落本内置默认(安全底线)。新增格式须与分类扩展名映射($fileTypeMap)同步。