【问题标题】:How to validate uploaded file size with Joi如何使用 Joi 验证上传的文件大小
【发布时间】:2016-10-07 02:35:14
【问题描述】:

我正在使用Joi 来验证请求。我想知道如何使用 Joi 验证上传的文件大小。

我正在以流的形式发送许多文件。

【问题讨论】:

  • 验证文件大小是什么意思?您想限制最大值,还是希望得到一个确切的尺寸?
  • @MattHarrison 我期待最大限制。
  • 限制payload maxBytes就够了吗?或者您想要每个文件的限制? github.com/hapijs/hapi/blob/master/API.md#route-options(见 maxBytes)
  • @MattHarrison:需要每个文件的限制。

标签: validation hapijs joi


【解决方案1】:

要将传入有效负载的大小限制为指定的字节数,您可以使用如下:

route.options.payload.maxBytes

例如:

      payload: {
          maxBytes: 20715200,
          output: 'stream',
          parse: true,
          allow: 'multipart/form-data'
      },
      validate: {
          payload: {
                bannerImage: Joi.any()
                .meta({swaggerType: 'file'})
                .optional()
                .allow('')
                .description('image file'),
                   },
          failAction: UniversalFunctions.failActionFunction
      },
  • 默认值为 1048576 (1MB)。
  • 允许非常大的负载可能会导致服务器内存不足。

【讨论】:

    猜你喜欢
    • 2011-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 2012-04-12
    相关资源
    最近更新 更多