Skip to content

Commit f574403

Browse files
committed
binarywang#591 文件上传接口不自动关闭inputStream,由调用方自己控制
1 parent ad2a5d3 commit f574403

File tree

4 files changed

+31
-27
lines changed

4 files changed

+31
-27
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/util/fs/FileUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public static File createTmpFile(InputStream inputStream, String name, String ex
1919
File resultFile = File.createTempFile(name, '.' + ext, tmpDirFile);
2020

2121
resultFile.deleteOnExit();
22-
org.apache.commons.io.FileUtils.copyInputStreamToFile(inputStream, resultFile);
22+
org.apache.commons.io.FileUtils.copyToFile(inputStream, resultFile);
2323
return resultFile;
2424
}
2525

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

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
package me.chanjar.weixin.common.util.http.apache;
22

3-
import me.chanjar.weixin.common.error.WxError;
4-
import me.chanjar.weixin.common.error.WxErrorException;
5-
import me.chanjar.weixin.common.util.fs.FileUtils;
6-
import me.chanjar.weixin.common.util.http.HttpResponseProxy;
7-
import me.chanjar.weixin.common.util.http.BaseMediaDownloadRequestExecutor;
8-
import me.chanjar.weixin.common.util.http.RequestHttp;
3+
import java.io.File;
4+
import java.io.IOException;
5+
import java.io.InputStream;
6+
97
import org.apache.commons.io.FilenameUtils;
108
import org.apache.commons.lang3.StringUtils;
119
import org.apache.http.Header;
@@ -16,9 +14,12 @@
1614
import org.apache.http.entity.ContentType;
1715
import org.apache.http.impl.client.CloseableHttpClient;
1816

19-
import java.io.File;
20-
import java.io.IOException;
21-
import java.io.InputStream;
17+
import me.chanjar.weixin.common.error.WxError;
18+
import me.chanjar.weixin.common.error.WxErrorException;
19+
import me.chanjar.weixin.common.util.fs.FileUtils;
20+
import me.chanjar.weixin.common.util.http.BaseMediaDownloadRequestExecutor;
21+
import me.chanjar.weixin.common.util.http.HttpResponseProxy;
22+
import me.chanjar.weixin.common.util.http.RequestHttp;
2223

2324
/**
2425
* Created by ecoolper on 2017/5/5.
@@ -45,8 +46,7 @@ public File execute(String uri, String queryParam) throws WxErrorException, IOEx
4546
}
4647

4748
try (CloseableHttpResponse response = requestHttp.getRequestHttpClient().execute(httpGet);
48-
InputStream inputStream = InputStreamResponseHandler.INSTANCE
49-
.handleResponse(response)) {
49+
InputStream inputStream = InputStreamResponseHandler.INSTANCE.handleResponse(response)) {
5050
Header[] contentTypeHeader = response.getHeaders("Content-Type");
5151
if (contentTypeHeader != null && contentTypeHeader.length > 0) {
5252
if (contentTypeHeader[0].getValue().startsWith(ContentType.APPLICATION_JSON.getMimeType())) {

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

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
package me.chanjar.weixin.common.util.http.jodd;
22

3+
import java.io.ByteArrayInputStream;
4+
import java.io.File;
5+
import java.io.IOException;
6+
import java.io.InputStream;
7+
8+
import org.apache.commons.io.FilenameUtils;
9+
import org.apache.commons.lang3.StringUtils;
10+
311
import jodd.http.HttpConnectionProvider;
412
import jodd.http.HttpRequest;
513
import jodd.http.HttpResponse;
@@ -8,16 +16,9 @@
816
import me.chanjar.weixin.common.error.WxError;
917
import me.chanjar.weixin.common.error.WxErrorException;
1018
import me.chanjar.weixin.common.util.fs.FileUtils;
11-
import me.chanjar.weixin.common.util.http.HttpResponseProxy;
1219
import me.chanjar.weixin.common.util.http.BaseMediaDownloadRequestExecutor;
20+
import me.chanjar.weixin.common.util.http.HttpResponseProxy;
1321
import me.chanjar.weixin.common.util.http.RequestHttp;
14-
import org.apache.commons.io.FilenameUtils;
15-
import org.apache.commons.lang3.StringUtils;
16-
17-
import java.io.ByteArrayInputStream;
18-
import java.io.File;
19-
import java.io.IOException;
20-
import java.io.InputStream;
2122

2223
/**
2324
* Created by ecoolper on 2017/5/5.
@@ -57,9 +58,12 @@ public File execute(String uri, String queryParam) throws WxErrorException, IOEx
5758
return null;
5859
}
5960

60-
InputStream inputStream = new ByteArrayInputStream(response.bodyBytes());
61-
return FileUtils.createTmpFile(inputStream, FilenameUtils.getBaseName(fileName), FilenameUtils.getExtension(fileName),
62-
super.tmpDirFile);
61+
try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
62+
return FileUtils.createTmpFile(inputStream,
63+
FilenameUtils.getBaseName(fileName),
64+
FilenameUtils.getExtension(fileName),
65+
super.tmpDirFile);
66+
}
6367
}
6468

6569

weixin-java-cp/src/main/java/me/chanjar/weixin/cp/api/WxCpMediaService.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package me.chanjar.weixin.cp.api;
22

3-
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
4-
import me.chanjar.weixin.common.error.WxErrorException;
5-
63
import java.io.File;
74
import java.io.IOException;
85
import java.io.InputStream;
96

7+
import me.chanjar.weixin.common.bean.result.WxMediaUploadResult;
8+
import me.chanjar.weixin.common.error.WxErrorException;
9+
1010
/**
1111
* <pre>
1212
* 媒体管理接口
@@ -30,7 +30,7 @@ public interface WxCpMediaService {
3030
*
3131
* @param mediaType 媒体类型, 请看{@link me.chanjar.weixin.common.api.WxConsts}
3232
* @param fileType 文件类型,请看{@link me.chanjar.weixin.common.api.WxConsts}
33-
* @param inputStream 输入流
33+
* @param inputStream 输入流,需要调用方控制关闭该输入流
3434
*/
3535
WxMediaUploadResult upload(String mediaType, String fileType, InputStream inputStream)
3636
throws WxErrorException, IOException;

0 commit comments

Comments
 (0)