记一次Egg上传文件的问题 —— nodejs.Error: Invalid filename: xxx.xlsx

1,950 阅读1分钟

问题描述

最近研究Egg上传文件到本地,发现当我上传的时候,居然以下报错:nodejs.Error: Invalid filename: xxx.xlsx

解决方案

  1. 确保你的文件有后缀名

  2. 在配置文件中config.default.js配置config.multipart

    同时还要配置你的白名单:whitelist

    config.multipart = {
        mode: 'stream',  // 可选值:stream、file
        fileSize: 1048576000,
        whitelist: [ '.xlsx' ],
    };
    

    其中注意的一点就是config.multipart中的mode项有两个值:stream和file,mode的值不一样,获取文件的方式也就不一样。

    // 当mode的值为stream时
    const stream = await ctx.getFileStream();
    // 当mode的值为file时
    const files = ctx.request.files;
    

    其他更多相关配置见官网:eggjs.org/zh-cn/plugi…