From 75978643371b3d2eb02b8aa31c522570f6faeb2b Mon Sep 17 00:00:00 2001 From: gaoxiongzaq Date: Tue, 24 Oct 2023 16:51:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=96=B9=E6=B3=95=20=E5=8C=85=E5=90=AB=E7=A9=BA=E6=A0=BC=20?= =?UTF-8?q?=E5=92=8C+=E8=BD=AC=E6=8D=A2=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20=E8=B0=83=E6=95=B4=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E8=BE=93=E5=87=BA=E6=8A=A5=E9=94=99=E6=96=B9?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/keking/service/FileHandlerService.java | 4 ++-- .../src/main/java/cn/keking/utils/DownloadUtils.java | 10 +++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/server/src/main/java/cn/keking/service/FileHandlerService.java b/server/src/main/java/cn/keking/service/FileHandlerService.java index 0298d888..9f34d85c 100644 --- a/server/src/main/java/cn/keking/service/FileHandlerService.java +++ b/server/src/main/java/cn/keking/service/FileHandlerService.java @@ -207,7 +207,7 @@ public class FileHandlerService implements InitializingBean { String pdfFolder = pdfName.substring(0, pdfName.length() - 4); String urlPrefix; try { - urlPrefix = baseUrl + URLEncoder.encode(pdfFolder, uriEncoding).replaceAll("\\+", "%20"); + urlPrefix = baseUrl + URLEncoder.encode(pdfFolder, uriEncoding).replaceAll("\\+", "%2B"); } catch (UnsupportedEncodingException e) { logger.error("UnsupportedEncodingException", e); urlPrefix = baseUrl + pdfFolder; @@ -464,7 +464,7 @@ public class FileHandlerService implements InitializingBean { url = WebUtils.encodeUrlFileName(url); if(UrlEncoderUtils.hasUrlEncoded(fileName) && UrlEncoderUtils.hasUrlEncoded(suffix)){ //判断文件名是否转义 try { - fileName = URLDecoder.decode(fileName, "UTF-8").replaceAll("\\+", "%20"); + fileName = URLDecoder.decode(fileName, "UTF-8").replaceAll("\\+", "%2B").replaceAll(" ", "%20"); suffix = URLDecoder.decode(suffix, "UTF-8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); diff --git a/server/src/main/java/cn/keking/utils/DownloadUtils.java b/server/src/main/java/cn/keking/utils/DownloadUtils.java index 1e4c7416..7ed8130b 100644 --- a/server/src/main/java/cn/keking/utils/DownloadUtils.java +++ b/server/src/main/java/cn/keking/utils/DownloadUtils.java @@ -22,6 +22,7 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.net.URI; import java.net.URL; +import java.net.URLEncoder; import java.util.Arrays; import java.util.Map; import java.util.UUID; @@ -54,7 +55,7 @@ public class DownloadUtils { String urlStr = null; try { SslUtils.ignoreSsl(); - urlStr = fileAttribute.getUrl().replaceAll("\\+", "%20"); + urlStr = fileAttribute.getUrl().replaceAll("\\+", "%2B").replaceAll(" ", "%20"); } catch (Exception e) { logger.error("忽略SSL证书异常:", e); } @@ -110,16 +111,11 @@ public class DownloadUtils { FileUtils.copyToFile(fileResponse.getBody(), realFile); return null; }); - } catch (RestClientException e) { - if (e.getMessage().contains("404 Not Found") || e.getMessage().contains("403 Not Found") || e.getMessage().contains("500 Not Found") ){ + } catch (Exception e) { response.setCode(1); response.setContent(null); response.setMsg("下载失败:" + e); return response; - }else { - e.printStackTrace(); - } - } } else if (isFtpUrl(url)) { String ftpUsername = WebUtils.getUrlParameterReg(fileAttribute.getUrl(), URL_PARAM_FTP_USERNAME);