【问题标题】:Node JS- How can I limit file size while using express-fileuploadNode JS-如何在使用 express-fileupload 时限制文件大小
【发布时间】:2019-08-23 00:49:30
【问题描述】:

我正在使用express-fileupload ,它工作正常并上传图片。我找不到限制文件大小的方法,或者写了一个检查以确保没有上传大小超过 1MB 的文件。

    app.post('/upload', function(req, res) {
  if (!req.files)
    return res.status(400).send('No files were uploaded.');

  // The name of the input field (i.e. "sampleFile") is used to retrieve the uploaded file
  let sampleFile = req.files.sampleFile;

  // Use the mv() method to place the file somewhere on your server
  sampleFile.mv('/somewhere/on/your/server/filename.jpg', function(err) {
    if (err)
      return res.status(500).send(err);

    res.send('File uploaded!');
  });
});

我试过这样的东西,实际上是在剪掉剩余的图像

    app.use(fileUpload({
    limits: {
        fileSize: 1000000 //1mb
    },
}));

我可以通过检查每个文件的文件大小来执行此 JavaScript,但是没有任何内置功能吗???一键上传多个文件怎么样?对于多个文件,它将遍历循环并检查每个文件的大小并排除那些大小大于 1mb 的文件,只上传那些大小符合要求的文件。所以我想知道除了编写自己的代码之外没有任何内置功能吗???

【问题讨论】:

  • 大家好,我可以减小文件大小,而不是限制文件大小?还是 express-fileupload 中没有这个选项?

标签: javascript node.js file-upload


【解决方案1】:

在 express-fileupload 中,我可以看到 busboy 选项。你试过吗? https://github.com/richardgirges/express-fileupload#using-busboy-options

我想在 cmets 中写这个,但我没有足够的声望点。 :(

【讨论】:

  • 在你的 node.js express 代码中,你实例化 express 的地方。按照文档中的说明向其中添加中间件。如果你不明白我想说什么,请告诉我。
【解决方案2】:

它正在截断剩余的图像,因为已达到大小限制,并且在这种情况下您没有明确设置中间件以中止上传。

因此,尝试将选项“abortOnLimit”设置为 true,如下所示:

 app.use(fileUpload({
    limits: {
        fileSize: 1000000 //1mb
    },
    abortOnLimit: true
 }));

有关更多信息,以下是文档中有关使用选项“abortOnLimit”的说明:

如果文件大于大小限制,则返回 HTTP 413 真的。否则,它将在结果文件中添加 truncate = true 结构。

来源链接:https://www.npmjs.com/package/express-fileupload

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    • 2013-09-27
    • 2013-01-06
    • 1970-01-01
    • 2018-10-16
    • 2021-10-02
    相关资源
    最近更新 更多