You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改AdminJS上传功能的maxFileSize限制?

解决AdminJS上传文件大小超出formidable限制的问题

问题分析

你在AdminJS的uploadFeature里配置了validation.maxSize,前端已正确显示对应大小限制,但服务器仍返回formidable的200MB报错,这是因为AdminJS的validation.maxSize仅负责前端验证和提示,并未覆盖formidable本身的默认上传限制(formidable默认最大文件大小为200MB)。

核心解决方案:修改代码配置formidable参数

需要在AdminJS的express集成配置中,单独设置formidable的文件大小限制,具体操作如下:

方式1:通过buildRouter传入配置

如果使用@adminjs/express的buildRouter方法创建路由,直接添加formidableOptions参数:

const router = buildRouter(admin, {
  formidableOptions: {
    maxFileSize: 500 * 1024 * 1024 // 与你validation中设置的500MB保持一致,若需1GB则设为1024*1024*1024
  }
});

方式2:手动配置express-formidable中间件

若你是手动挂载express中间件,可直接给express-formidable传入限制参数:

import express from 'express';
import formidableMiddleware from 'express-formidable';

const app = express();
app.use(formidableMiddleware({
  maxFileSize: 500 * 1024 * 1024
}));

Nginx补充配置(若使用反向代理)

如果你的服务经过Nginx反向代理,必须同步修改Nginx配置,避免Nginx提前截断大文件:

  • 打开Nginx配置文件(通常路径为/etc/nginx/nginx.conf或站点配置/etc/nginx/sites-available/[你的站点名])
  • 在server或对应location块中添加:
client_max_body_size 500M; # 数值与后端设置保持一致,如1GB则写1G
  • 重启Nginx生效:sudo systemctl restart nginx

注意事项

  • 确保后端formidable的maxFileSize与AdminJS的validation.maxSize数值一致,避免前后端限制不一致
  • 若使用AWS S3存储,无需额外配置桶大小限制(S3默认无上传大小限制,除非手动设置了桶策略)

内容的提问来源于stack exchange,提问作者0021654780

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 17:42:04