Skip to content

Commit 6f57472

Browse files
authoredApr 13, 2020
🐛 #1500 修复企业微信素材下载报错问题:Prefix string too short
1 parent 74d8891 commit 6f57472

File tree

3 files changed

+18
-3
lines changed

3 files changed

+18
-3
lines changed
 

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

+6-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,12 @@ public File execute(String uri, String queryParam, WxType wxType) throws WxError
6363
fileName = String.valueOf(System.currentTimeMillis());
6464
}
6565

66-
return FileUtils.createTmpFile(inputStream, FilenameUtils.getBaseName(fileName), FilenameUtils.getExtension(fileName),
66+
String baseName = FilenameUtils.getBaseName(fileName);
67+
if (StringUtils.isBlank(fileName) || baseName.length() < 3) {
68+
baseName = String.valueOf(System.currentTimeMillis());
69+
}
70+
71+
return FileUtils.createTmpFile(inputStream, baseName, FilenameUtils.getExtension(fileName),
6772
super.tmpDirFile);
6873

6974
} finally {

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

+6-1
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,14 @@ public File execute(String uri, String queryParam, WxType wxType) throws WxError
6060
return null;
6161
}
6262

63+
String baseName = FilenameUtils.getBaseName(fileName);
64+
if (StringUtils.isBlank(fileName) || baseName.length() < 3) {
65+
baseName = String.valueOf(System.currentTimeMillis());
66+
}
67+
6368
try (InputStream inputStream = new ByteArrayInputStream(response.bodyBytes())) {
6469
return FileUtils.createTmpFile(inputStream,
65-
FilenameUtils.getBaseName(fileName),
70+
baseName,
6671
FilenameUtils.getExtension(fileName),
6772
super.tmpDirFile);
6873
}

‎weixin-java-common/src/main/java/me/chanjar/weixin/common/util/http/okhttp/OkHttpMediaDownloadRequestExecutor.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,13 @@ public File execute(String uri, String queryParam, WxType wxType) throws WxError
5858
return null;
5959
}
6060

61+
String baseName = FilenameUtils.getBaseName(fileName);
62+
if (StringUtils.isBlank(fileName) || baseName.length() < 3) {
63+
baseName = String.valueOf(System.currentTimeMillis());
64+
}
65+
6166
File file = File.createTempFile(
62-
FilenameUtils.getBaseName(fileName), "." + FilenameUtils.getExtension(fileName), super.tmpDirFile
67+
baseName, "." + FilenameUtils.getExtension(fileName), super.tmpDirFile
6368
);
6469

6570
try (BufferedSink sink = Okio.buffer(Okio.sink(file))) {

0 commit comments

Comments
 (0)
Please sign in to comment.