Browse Source

引入galimatias,解决不规范文件名导致文件下载异常

kl 4 years ago
parent
commit
986f562266
2 changed files with 10 additions and 3 deletions
  1. 6 0
      server/pom.xml
  2. 4 3
      server/src/main/java/cn/keking/utils/DownloadUtils.java

+ 6 - 0
server/pom.xml

@@ -201,6 +201,12 @@
             <scope>system</scope>
             <systemPath>${basedir}/lib/cpdetector-1.04.jar</systemPath>
         </dependency>
+        <!-- url 规范化 -->
+        <dependency>
+            <groupId>io.mola.galimatias</groupId>
+            <artifactId>galimatias</artifactId>
+            <version>0.2.1</version>
+        </dependency>
     </dependencies>
     <build>
         <resources>

+ 4 - 3
server/src/main/java/cn/keking/utils/DownloadUtils.java

@@ -4,6 +4,7 @@ import cn.keking.config.ConfigConstants;
 import cn.keking.model.FileAttribute;
 import cn.keking.model.FileType;
 import cn.keking.model.ReturnResponse;
+import io.mola.galimatias.GalimatiasParseException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -81,7 +82,6 @@ public class DownloadUtils {
     public static byte[] getBytesFromUrl(String urlStr) throws IOException {
         InputStream is = getInputStreamFromUrl(urlStr);
         if (is == null) {
-         //   urlStr = URLUtil.normalize(urlStr, true, true);
             is = getInputStreamFromUrl(urlStr);
             if (is == null) {
                 logger.error("文件下载异常:url:{}", urlStr);
@@ -98,13 +98,14 @@ public class DownloadUtils {
 
     private static InputStream getInputStreamFromUrl(String urlStr) {
         try {
-            URL url = new URL(urlStr);
+
+            URL url = io.mola.galimatias.URL.parse(urlStr).toJavaURL();
             URLConnection connection = url.openConnection();
             if (connection instanceof HttpURLConnection) {
                 connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
             }
             return connection.getInputStream();
-        } catch (IOException e) {
+        } catch (IOException | GalimatiasParseException e) {
             logger.warn("连接url异常:url:{}", urlStr);
             return null;
         }