Egg.js学习与实战系列 · 文件上传配置

时间:2023-03-09 23:16:35
Egg.js学习与实战系列 · 文件上传配置

在使用Egg.js搭建文件上传服务时,遇到了几个一般新手都会遇到的坑。

经查阅官方文档,Egg框架中默认使用egg-multipart插件进行文件上传,所以上传文件前需要做相关的配置。

Egg.js学习与实战系列 · 文件上传配置

上传文件提示: filetype undefined (图片可以上传,不报错)

  • 原因:没有给egg指定上传文件的类型

解决方法:config中添加如下配置

// config/config.default.js
config.multipart = {
mode: 'file', // 对应文件类型
}

上传 txt 文件提示:Invalid filename

  • 原因:egg-multipart有对上传文件的后缀名限制的白名单(whitelist),.txt后缀没有在默认whitelist中,导致上传失败。

  • 默认白名单:

const whitelist = [
// images
'.jpg', '.jpeg', // image/jpeg
'.png', // image/png, image/x-png
'.gif', // image/gif
'.bmp', // image/bmp
'.wbmp', // image/vnd.wap.wbmp
'.webp',
'.tif',
'.psd',
// text
'.svg',
'.js', '.jsx',
'.json',
'.css', '.less',
'.html', '.htm',
'.xml',
// tar
'.zip',
'.gz', '.tgz', '.gzip',
// video
'.mp3',
'.mp4',
'.avi',
];

解决方法:config中添加如下配置

// config/config.default.js
config.multipart = {
fileExtensions: [
'.txt',
],
}

上传大文件提示:Reach fileSize limit

解决方法:config中添加如下配置

// config/config.default.js
config.multipart = {
fileSize: '100mb', // Max file size (in bytes), default is 10mb
}

参考文档:


欢迎访问:个人博客地址