Info: Please input the file name ( *.cfg, *.zip ) [vrpcfg.zip]:cfg Error: Invalid file name or Invalid extension ( *.cfg, *.zip ). <SW1>
时间: 2024-10-18 17:14:46 浏览: 268
要解决`Invalid filename`错误,特别是在使用如EggJS这样的框架时,你需要确认上传文件名是否符合配置文件中定义的白名单。在你的`config.default.js`示例中,白名单限制了可以接受的文件扩展名,包括`.cfg`。如果你试图上传名为`vrpcfg.zip`的文件,但它的扩展名不是`.cfg`也不是`.zip`,则会被认为是无效的。
为了验证并上传正确的文件,你可以按照以下步骤操作:
1. 检查文件名:确保文件名(不包括路径)只包含允许的扩展名,例如`vrpcfg.cfg`或者`vrpcfg.zip`。
2. 如果你的脚本允许用户输入文件名,可以在提示用户输入文件名时明确指定格式。例如:
```javascript
const acceptedExtensions = ['.cfg', '.zip'];
const fileName = prompt("Please input the file name (format: *.cfg or *.zip):", '');
if (!acceptedExtensions.includes(fileName.slice(-4).toLowerCase())) {
console.error(`Invalid file name or extension. Only ${allowedExtensions.join(', ')} are allowed.`);
return;
}
```
这将在用户输入文件名后检查其扩展名是否有效。
3. 如果是在服务器端处理文件上传,确保在处理请求时应用同样的检查逻辑。在处理multipart请求时,检查`req.file.filename`属性。
相关问题--:
1. EggJS如何更精确地控制文件上传的扩展名过滤?
2. 如何在前端验证文件名格式后再进行上传?
3. egg-multipart中间件如何设置允许的文件类型?
阅读全文