Java ISMAXSIZEEXCEED时的访问请求正文

Java ISMAXSIZEEXCEED时的访问请求正文,java,playframework,multipartform-data,playframework-2.1,Java,Playframework,Multipartform Data,Playframework 2.1,我正在使用play 2.1.0,并希望通过几个参数实现文件上载,即多部分/表单数据表单有一些小字段和文件本身 如果我上传文件而不使用注释 @BodyParser.Of(value=BodyParser.MultipartFormData.class,maxLength=MAX\u FILE\u SIZE\u B) 检查文件大小,如uploadedFile.length>MAX_sizeI可以访问请求正文,并且它始终不为空 如果我在使用注释,当maxSizeExceededctx.request(

我正在使用play 2.1.0,并希望通过几个参数实现文件上载,即
多部分/表单数据
表单有一些小字段和文件本身

如果我上传文件而不使用注释

@BodyParser.Of(value=BodyParser.MultipartFormData.class,maxLength=MAX\u FILE\u SIZE\u B)

检查文件大小,如
uploadedFile.length>MAX_size
I可以访问请求正文,并且它始终不为空

如果我在使用注释,当maxSizeExceeded
ctx.request().body().asMultipartFormData()
为空时,即使我的小参数在浏览器发送的请求中也会先行。这是正确的行为吗?即使文件太大,是否有任何方法获取小参数


第一种方法是错误的,因为大型文件实际上将上载到服务器上吗?

这种行为是预期的,因为头将包含文件大小,如果负载/文件大小超过最大大小限制,服务器将不会接收文件,连接将关闭。因此,您不能访问任何表单字段。相反,如果有帮助的话,可以尝试将这些字段添加为请求头的一部分

并没有任何文档可以解释这一点,但http层就是这样处理的。下面可能会解释一点,当有效负载超过限制时,它会用body=null包装对象


要回答您的问题,是的,第二种方法很好,可以帮助您的服务器避免不必要地接受大文件。

这种行为是预期的,因为一旦负载大小超过最大大小限制,负载就会被丢弃。因此,您不能访问任何表单字段。相反,如果有帮助的话,可以尝试将这些字段添加为请求头的一部分。抱歉,回复太晚,迟做总比不做强:)@Sundar你能给我一个答案吗?我会接受的。此外,链接到源代码将非常感谢。