在 MultipartEntityBuilder 中编码文件名 [英] Encode filename in MultipartEntityBuilder

查看:50
本文介绍了在 MultipartEntityBuilder 中编码文件名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用 HttpPost 和 MultipartEntityBuilder 的文件上传 API.以下是我使用过的代码.

I am trying a file upload API using HttpPost and MultipartEntityBuilder. Following is the code I have used.

MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setCharset(MIME.UTF8_CHARSET);
builder.addBinaryBody(<fileFieldName>, <byteArray>, ContentType.TEXT_PLAIN, <fileName>);

文件已正确上传.但是当文件名包含非 ASCII 字符时,它会以名称????.jpg"上传.尝试了此处给出的解决方案 https://stackoverflow.com/a/25870301/3271472.但这并没有解决我的问题.请协助.

File gets uploaded correctly. But when file name contains non-ASCII characters, it gets uploaded with name "????.jpg". Tried the solution given here https://stackoverflow.com/a/25870301/3271472. But it didn't solve my problem. Please assist.

推荐答案

这对我有用:

MultipartEntityBuilder b = MultipartEntityBuilder.create();
b.addPart("file", new FileBody(<FILE>, <CONTENTTYPE>, <FILENAME>)).setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
b.setCharset(StandardCharsets.UTF_8);

只需将 <> 值替换为您的值...

Just replace <> values with yours...

这篇关于在 MultipartEntityBuilder 中编码文件名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆