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

在使用Egg.js搭建文件上传服务时,遇到了几个一般新手都会遇到的坑。
经查阅官方文档,Egg框架中默认使用egg-multipart插件进行文件上传,所以上传文件前需要做相关的配置。

EggJS

上传文件提示: 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
}

参考文档:


欢迎访问:个人博客地址

posted @ 2021-10-19 17:53  天問  阅读(16)  评论(0编辑  收藏  举报