带有netty的错误,可以通过http协议上传文件

问题描述 投票:0回答:1

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

当我使用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是否使用';'分隔内容主体?这导致此错误。如果没有,此错误是怎么发生的?

file http upload netty
1个回答
0
投票

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

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

请升级到最新的Netty版本

© www.soinside.com 2019 - 2024. All rights reserved.