netty通过http协议上传文件的错误



我不知道这是否真的是一个bug,但我确实遇到了它。

当我使用HttpPostRequestDecoder来帮助我接受通过HTTP上传的文件时,它出现了

当文件名为所有英文字母或数字时,一切正常;但是,一旦文件名包含中文、韩语、日语和其他非英文字符,就会引发">ErrorDataDecoderException"错误。

我检查了很长时间,最后查看了源代码,发现当文件名包含其他语言时,内容主体部分是:

Content-Disposition: form-data; name = "file"; filename = "c73b1345ab18deeef6cdb220d62fc976我是汉字.jpg"; filename* = "UTF-8''c73b1345ab18deeef6cdb220d62fc976%E6%88%91%E6%98%AF%E6%B1%89%E5%AD%97.jpg"

当它是纯英语部分时,内容主体是:

Content-Disposition: form-data; name = "file"; filename = "6e3f8201c976de67aae094c72634f75e.jpg"

很明显,它们不一样,所以当我用基于行的分隔代替它时,一切都很好(这是我自己写的一个新类(。

Netty也在使用";"到分离内容体?这导致了这个错误。如果没有,这个错误是如何发生的?

这听起来像是最近修复的一个错误:

https://github.com/netty/netty/pull/10089

请升级到最新的Netty版本

最新更新