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);