From 698ae84adaf1b8d0e8dd61d7279863fe17c1e81d Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期四, 23 一月 2025 14:20:39 +0800 Subject: [PATCH] 1 --- ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java | 23 ++++++++++++++++++++--- 1 files changed, 20 insertions(+), 3 deletions(-) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java index 9b7a776..3983e44 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/UrlDownloader.java @@ -2,8 +2,10 @@ import java.io.IOException; import java.io.InputStream; +import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.URL; +import java.net.URLEncoder; public class UrlDownloader { @@ -15,6 +17,13 @@ * @throws IOException 如果发生I/O错误 */ public static InputStream downloadAsStream(String urlString) throws IOException { + // 找到最后一个斜杠的位置 + int lastSlashIndex = urlString.lastIndexOf("/"); + // 从斜杠后提取文件名 + String baseUrl = urlString.substring(0, lastSlashIndex); + String fileName = urlString.substring(lastSlashIndex + 1); + String encode = URLEncoder.encode(fileName, "UTF-8"); + urlString = baseUrl + "/" + encode; URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); @@ -29,9 +38,17 @@ return connection.getInputStream(); } - public static void main(String[] args) { - String urlString = "https://example.com/file.txt"; // 替换为你要下载的URL - + public static void main(String[] args) throws UnsupportedEncodingException { + String urlString = "http://192.168.110.188:9300/statics/2025/01/21/身份证人像面_20250121171827A014.png"; // 替换为你要下载的URL + //将路径中的中文进行编码 + //String urlString = "http://192.168.110.188:9300/statics/2025/01/21/%E8%BA%AB%E4%BB%BD%E8%AF%81%E4%BA%BA%E5%83%8F%E9%9D%A2_20250121171827A014.png"; + // 找到最后一个斜杠的位置 + int lastSlashIndex = urlString.lastIndexOf("/"); + // 从斜杠后提取文件名 + String baseUrl = urlString.substring(0, lastSlashIndex); + String fileName = urlString.substring(lastSlashIndex + 1); + String encode = URLEncoder.encode(fileName, "UTF-8"); + urlString = baseUrl + "/" + encode; try (InputStream inputStream = downloadAsStream(urlString)) { // 这里你可以处理输入流,例如将其写入文件或进行其他操作 byte[] buffer = new byte[1024]; -- Gitblit v1.7.1