|
|
@@ -18,12 +18,20 @@ const ALLOWED_IMAGE_TYPES = new Set([
|
|
18
|
18
|
'jpg', 'jpeg', 'png', 'bmp', 'heic', 'heif', 'webp', 'gif'
|
|
19
|
19
|
]);
|
|
20
|
20
|
|
|
21
|
|
-const ALLOWED_AUDIO_TYPES = new Set([
|
|
22
|
|
- 'aac', 'mp3', 'mp4', 'm4a', 'flac', 'ogg', 'ape', 'amr',
|
|
23
|
|
- 'wma', 'wav', 'aiff', 'caf'
|
|
24
|
|
-]);
|
|
|
21
|
+// 不再允许音频类型
|
|
|
22
|
+// const ALLOWED_AUDIO_TYPES = new Set([
|
|
|
23
|
+// 'aac', 'mp3', 'mp4', 'm4a', 'flac', 'ogg', 'ape', 'amr',
|
|
|
24
|
+// 'wma', 'wav', 'aiff', 'caf'
|
|
|
25
|
+// ]);
|
|
25
|
26
|
|
|
26
|
|
-const BLOCKED_TYPES = new Set(['php', 'js', 'txt']);
|
|
|
27
|
+// 阻止的文件类型,包括视频和其他不允许的类型
|
|
|
28
|
+const BLOCKED_TYPES = new Set([
|
|
|
29
|
+ 'php', 'js', 'txt',
|
|
|
30
|
+ // 视频格式
|
|
|
31
|
+ 'mp4', 'avi', 'mov', 'wmv', 'flv', 'mkv', 'webm', '3gp', 'm4v',
|
|
|
32
|
+ // 音频格式
|
|
|
33
|
+ 'aac', 'mp3', 'm4a', 'flac', 'ogg', 'ape', 'amr', 'wma', 'wav', 'aiff', 'caf'
|
|
|
34
|
+]);
|
|
27
|
35
|
|
|
28
|
36
|
// 文件上传配置
|
|
29
|
37
|
const fileFilter = (req, file, cb) => {
|
|
|
@@ -31,10 +39,10 @@ const fileFilter = (req, file, cb) => {
|
|
31
|
39
|
|
|
32
|
40
|
if (BLOCKED_TYPES.has(extension)) {
|
|
33
|
41
|
cb(new Error('不允许上传该类型的文件!'), false);
|
|
34
|
|
- } else if (ALLOWED_IMAGE_TYPES.has(extension) || ALLOWED_AUDIO_TYPES.has(extension)) {
|
|
|
42
|
+ } else if (ALLOWED_IMAGE_TYPES.has(extension)) {
|
|
35
|
43
|
cb(null, true);
|
|
36
|
44
|
} else {
|
|
37
|
|
- cb(new Error('文件格式不支持!'), false);
|
|
|
45
|
+ cb(new Error('只允许上传图片文件!'), false);
|
|
38
|
46
|
}
|
|
39
|
47
|
};
|
|
40
|
48
|
|
|
|
@@ -62,8 +70,8 @@ export const UploadFile = async (ctx) => {
|
|
62
|
70
|
|
|
63
|
71
|
if (ALLOWED_IMAGE_TYPES.has(extension)) {
|
|
64
|
72
|
await checkImage(filename, filepath);
|
|
65
|
|
- } else if (ALLOWED_AUDIO_TYPES.has(extension)) {
|
|
66
|
|
- await uploadFile(filename, filepath);
|
|
|
73
|
+ } else {
|
|
|
74
|
+ throw new Error('只允许上传图片文件!');
|
|
67
|
75
|
}
|
|
68
|
76
|
|
|
69
|
77
|
ctx.body = {
|