源码链接:
https://github.com/eggjs/egg-multipart/blob/92045980e4e78303a3168324cc3f2f833242809c/app.js
const extname = path.extname(filename);
if (!extname || whitelist.indexOf(extname.toLowerCase()) === -1) {
const err = new Error('Invalid filename extension: ' + extname);
err.status = 400;
return err;
}
当文件名无扩展名时,例如 /etc/hosts,path.extname('/etc/hosts') 得到 ''
!'' === true
因此当我要上传无扩展名的文件时,一定会得到400的http响应
而且这似乎是不可配置的,请问一下,为什么要强制阻止无扩展名的文件?
这个理论上是要做成可配置的, @liyuanqiu 可以提一个 PR 支持一下,例如增加支持设置扩展名为空字符串 ''
const extname = path.extname(filename) || '';
if (whitelist.indexOf(extname.toLowerCase()) === -1) {
或者支持函数好了
谢谢,大概何时能发布这个feat?
@liyuanqiu 没解决之前不要自己 close 掉。
那个 PR 已经合并发布了,你删除全部依赖重新安装下即可。具体使用看文档。
就你这个案例,可以配 config.multipart = { fileExtensions: [''] }
Most helpful comment
@liyuanqiu 没解决之前不要自己 close 掉。
那个 PR 已经合并发布了,你删除全部依赖重新安装下即可。具体使用看文档。
就你这个案例,可以配
config.multipart = { fileExtensions: [''] }