Skip to content

Commit fe8c708

Browse files
committed
fix #211 上传素材时如果文件名是中文会乱码
1 parent a25d2ed commit fe8c708

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/MediaUploadRequestExecutor.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import org.apache.http.client.methods.CloseableHttpResponse;
1212
import org.apache.http.client.methods.HttpPost;
1313
import org.apache.http.entity.ContentType;
14+
import org.apache.http.entity.mime.HttpMultipartMode;
1415
import org.apache.http.entity.mime.MultipartEntityBuilder;
1516

1617
import me.chanjar.weixin.common.bean.result.WxError;
@@ -35,6 +36,7 @@ public WxMediaUploadResult execute(CloseableHttpClient httpclient, HttpHost http
3536
HttpEntity entity = MultipartEntityBuilder
3637
.create()
3738
.addBinaryBody("media", file)
39+
.setMode(HttpMultipartMode.RFC6532)
3840
.build();
3941
httpPost.setEntity(entity);
4042
httpPost.setHeader("Content-Type", ContentType.MULTIPART_FORM_DATA.toString());

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/http/MaterialUploadRequestExecutor.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import org.apache.http.client.methods.CloseableHttpResponse;
1414
import org.apache.http.client.methods.HttpPost;
1515
import org.apache.http.entity.ContentType;
16+
import org.apache.http.entity.mime.HttpMultipartMode;
1617
import org.apache.http.entity.mime.MultipartEntityBuilder;
1718
import org.apache.http.entity.mime.content.InputStreamBody;
1819
import org.apache.http.impl.client.CloseableHttpClient;
@@ -36,7 +37,9 @@ public WxMpMaterialUploadResult execute(CloseableHttpClient httpclient, HttpHost
3637
}
3738
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(file));
3839
MultipartEntityBuilder multipartEntityBuilder = MultipartEntityBuilder.create();
39-
multipartEntityBuilder.addPart("media", new InputStreamBody(bufferedInputStream, material.getName()));
40+
multipartEntityBuilder
41+
.addPart("media", new InputStreamBody(bufferedInputStream, material.getName()))
42+
.setMode(HttpMultipartMode.RFC6532);
4043
Map<String, String> form = material.getForm();
4144
if (material.getForm() != null) {
4245
multipartEntityBuilder.addTextBody("description", WxGsonBuilder.create().toJson(form));

0 commit comments

Comments
 (0)