如何限制express.js中的上传文件大小

时间:2012-11-14 06:49:33

标签: node.js upload express

我得到了这个错误说

error:request entity too large 

上传大约30MB的视频时,

这是设置代码

app.use(express.bodyParser({
    uploadDir:'./Temp',
    maxFieldsSize:'2 * 1024 * 1024 * 1024 ',
}));

我不确定如何设置maxFieldsSize属性,需要一些帮助!!!

6 个答案:

答案 0 :(得分:6)

Express使用连接中间件,您可以使用以下

指定文件上载大小
app.use(express.limit('4M'));

Connect Limit middleware

答案 1 :(得分:5)

// Comment sart   
// app.use(express.bodyParser({
//    uploadDir:'./Temp',
//    maxFieldsSize:'2 * 1024 * 1024 * 1024 ',
// }));  

// Add this code for maximun 150mb 
app.use(bodyParser.json({limit: '150mb'}));
app.use(bodyParser.urlencoded({     // to support URL-encoded bodies
limit: '150mb',
extended: true
})); 

// I did it Okay. Goood luck 

答案 2 :(得分:3)

app.use(express.limit('4mb'));

但是你必须确保在上面添加这一行,

app.use(express.bodyParser());

app.use(express.json());
app.use(express.urlencoded());

取决于您使用的版本。

答案 3 :(得分:2)

在2020 Express中,使用正文解析器urlencoded函数来控制限制。 http://expressjs.com/en/4x/api.html#express.urlencoded

这些是node_modules> body-parser> lib> types> urlencoded.js中的默认设置 https://www.npmjs.com/package/body-parser

  var extended = opts.extended !== false
  var inflate = opts.inflate !== false
  var limit = typeof opts.limit !== 'number'
    ? bytes.parse(opts.limit || '100kb')
    : opts.limit
  var type = opts.type || 'application/x-www-form-urlencoded'
  var verify = opts.verify || false

您可以在此处看到限制的默认设置为100kb。 因此,为了使您可以使用

app.use(express.urlencoded({ extended: false, limit: '2gb' }));

这是通过NPM软件包字节提供的文件类型选项(由bodyparser使用) https://www.npmjs.com/package/bytes

"b" for bytes
"kb" for kilobytes
"mb" for megabytes
"gb" for gigabytes
"tb" for terabytes
"pb" for petabytes

我确定这太过分了,但我希望这对下一个人有帮助。

答案 4 :(得分:0)

我正在使用Express4。我尝试了许多app.use()语句,包括this thread上列出的不推荐使用的语句,但没有一个起作用。

相反,事实证明,我只需要向index.js添加一行即可更改Formidable模块中的maxFileSize选项:

// create an incoming form object
var form = new formidable.IncomingForm();

// ADD THIS LINE to increase file size limit to 10 GB; default is 200 MB
form.maxFileSize = 10 * 1024 * 1024 * 1024;

来源:来自here的评论。

答案 5 :(得分:0)

pg_stat_us-er_tables

使用js中的multer增加文件上传大小的正确格式

相关问题