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
}

參考文檔:


歡迎訪問:個人博客地址


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM