egg icon indicating copy to clipboard operation
egg copied to clipboard

multipart如何分开单独限制文件上传大小

Open nanhupatar opened this issue 4 years ago • 6 comments

相同issuemultipart如何分开单独限制文件上传大小

我这边使用的是file模式,我想在一个单独的路由限制上传文件的大小,按照上面issuse提示的写

router.post('/multiple-file', app.middleware.multipart({ fileSize: '10kb' }), controller.home.upload);

上传时提示

{
    "error_msg": "the multipart request can't be consumed twice",
    "success": false
}

请问这个需要怎么处理呢

nanhupatar avatar Apr 22 '21 15:04 nanhupatar

因为 egg-multipart 只提供一个单独的fileSize配置,而不能进行定制化,比如图片限制5m,视频限制100m,file模式下没有size,

nanhupatar avatar Apr 22 '21 15:04 nanhupatar

@atian25

nanhupatar avatar Apr 23 '21 01:04 nanhupatar

请问这个在框架内可以实现吗,即不引入第三方中间件的情况下

nanhupatar avatar Apr 25 '21 06:04 nanhupatar

the multipart request can't be consumed twice

因为内置的中间件已经处理过了,你要配置下 config.multipart.ignore/match 来跳过它

atian25 avatar Apr 27 '21 01:04 atian25

我将文件上传的文档完善一下,增加按路由来区分文件大小限制的示例。

fengmk2 avatar May 22 '21 03:05 fengmk2

@nanhupatar 目前确实实现起来比较不符合直觉,我先写了一个测试用例,你可以参考 https://github.com/eggjs/egg-multipart/pull/51

后续是否做得更加简单,我还需要想想怎样实现比较符合一般人的直觉。 @dead-horse 也可以看看。

fengmk2 avatar May 22 '21 05:05 fengmk2