Jelajahi Sumber

修复 下载方法 包含空格 和+转换错误的问题 调整下载方法输出报错方式

gaoxiongzaq 2 tahun lalu
induk
melakukan
7597864337

+ 2 - 2
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();

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