使用 json payload netty 上传文件

File upload with json payload netty

我正在使用 netty 4 进行多部分文件上传,但不知道如何将 jsaon 正文与上传文件一起发送 (.jpg/.pdf/.etc.)

你能帮我用 netty 4 和 Java 实现这个功能吗? 非常感谢您的帮助。

问题是 JSON 不太支持文件上传,因此您首先需要决定要如何对文件和元数据进行编码。

你基本上有四个选择:

  1. 使用格式编码发送您的文件而不是 json。这有更好的文件上传支持。

  2. Base64编码文件在json。这将使文件大小增加约 33%。

  3. 首先在multipart/form-dataPOST中发送文件并使用return值指定一个id来发送json数据是不同的请求

  4. 先发送json数据,然后return一个url上传文件到

我建议不要使用选项 2,因为它还需要操作内存中的文件。如果文件很大,使用multipart/form-data会让netty将文件保存到文件系统,这样你就不必将它存储在内存中。