Browse Source

!15 2.2.1版
Merge pull request !15 from 陈精华/master

陈精华 4 years ago
parent
commit
8b33a233dd

+ 2 - 2
Dockerfile

@@ -25,5 +25,5 @@ ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
 ENV PATH $PATH:$JAVA_HOME/bin
 ENV LANG zh_CN.UTF-8
 ENV LC_ALL zh_CN.UTF-8
-ENV KKFILEVIEW_BIN_FOLDER /opt/kkFileView-2.2.1-SNAPSHOT/bin
-ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider","-Dspring.config.location=/opt/kkFileView-2.2.1-SNAPSHOT/config/application.properties","-jar","/opt/kkFileView-2.2.1-SNAPSHOT/bin/kkFileView-2.2.1-SNAPSHOT.jar"]
+ENV KKFILEVIEW_BIN_FOLDER /opt/kkFileView-2.2.1/bin
+ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider","-Dspring.config.location=/opt/kkFileView-2.2.1/config/application.properties","-jar","/opt/kkFileView-2.2.1/bin/kkFileView-2.2.1.jar"]

+ 1 - 1
jodconverter-web/pom.xml

@@ -12,7 +12,7 @@
 
     <groupId>cn.keking</groupId>
     <artifactId>kkFileView</artifactId>
-    <version>2.2.1-SNAPSHOT</version>
+    <version>2.2.1</version>
 
 
     <properties>

+ 1 - 1
jodconverter-web/src/main/bin/startup.bat

@@ -6,4 +6,4 @@ echo Starting kkFileView...
 echo Please check log file in ../log/kkFileView.log for more information
 echo You can get help in our official homesite: https://kkFileView.keking.cn
 echo If this project is helpful to you, please star it on https://gitee.com/kekingcn/file-online-preview/stargazers
-java -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dspring.config.location=..\config\application.properties -jar kkFileView-2.2.1-SNAPSHOT.jar -> ..\log\kkFileView.log
+java -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dspring.config.location=..\config\application.properties -jar kkFileView-2.2.1.jar -> ..\log\kkFileView.log

+ 1 - 1
jodconverter-web/src/main/bin/startup.sh

@@ -29,4 +29,4 @@ echo "Starting kkFileView..."
 echo "Please execute ./showlog.sh to check log for more information"
 echo "You can get help in our official homesite: https://kkFileView.keking.cn"
 echo "If this project is helpful to you, please star it on https://gitee.com/kekingcn/file-online-preview/stargazers"
-nohup java -Dfile.encoding=UTF-8 -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dspring.config.location=../config/application.properties -jar kkFileView-2.2.1-SNAPSHOT.jar > ../log/kkFileView.log 2>&1 &
+nohup java -Dfile.encoding=UTF-8 -Dsun.java2d.cmm=sun.java2d.cmm.kcms.KcmsServiceProvider -Dspring.config.location=../config/application.properties -jar kkFileView-2.2.1.jar > ../log/kkFileView.log 2>&1 &

+ 23 - 16
jodconverter-web/src/main/java/cn/keking/utils/DownloadUtils.java

@@ -56,9 +56,10 @@ public class DownloadUtils {
         }
         try {
             URL url = new URL(urlStr);
-            OutputStream os = new FileOutputStream(new File(realPath));
             if (url.getProtocol() != null && url.getProtocol().toLowerCase().startsWith("http")) {
-                saveToOutputStreamFromUrl(urlStr, os);
+                byte[] bytes = getBytesFromUrl(urlStr);
+                OutputStream os = new FileOutputStream(new File(realPath));
+                saveBytesToOutStream(bytes, os);
             } else if (url.getProtocol() != null && "ftp".equals(url.getProtocol().toLowerCase())) {
                 String ftpUsername = fileUtils.getUrlParameterReg(fileAttribute.getUrl(), URL_PARAM_FTP_USERNAME);
                 String ftpPassword = fileUtils.getUrlParameterReg(fileAttribute.getUrl(), URL_PARAM_FTP_PASSWORD);
@@ -88,21 +89,24 @@ public class DownloadUtils {
         }
     }
 
-    public boolean saveToOutputStreamFromUrl(String urlStr, OutputStream os) throws IOException {
+    public byte[] getBytesFromUrl(String urlStr) throws IOException {
         InputStream is = getInputStreamFromUrl(urlStr);
         if (is != null) {
-            copyStream(is, os);
+            return getBytesFromStream(is);
         } else {
             urlStr = URLUtil.normalize(urlStr, true, true);
             is = getInputStreamFromUrl(urlStr);
-            if (is != null) {
-                copyStream(is, os);
-            } else {
-                os.close();
-                return false;
+            if (is == null) {
+                logger.error("文件下载异常:url:{}", urlStr);
+                throw new IOException("文件下载异常:url:" + urlStr);
             }
+            return getBytesFromStream(is);
         }
-        return true;
+    }
+
+    public void saveBytesToOutStream(byte[] b, OutputStream os) throws IOException {
+        os.write(b);
+        os.close();
     }
 
     private InputStream getInputStreamFromUrl(String urlStr) {
@@ -119,14 +123,17 @@ public class DownloadUtils {
         }
     }
 
-    private void copyStream(InputStream is, OutputStream os) throws IOException {
-        byte[] bs = new byte[1024];
-        int len;
-        while (-1 != (len = is.read(bs))) {
-            os.write(bs, 0, len);
+    private byte[] getBytesFromStream(InputStream is) throws IOException {
+        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        byte[] buffer = new byte[1024];
+        int len = 0;
+        while ((len = is.read(buffer)) != -1) {
+            baos.write(buffer, 0, len);
         }
+        byte[] b = baos.toByteArray();
         is.close();
-        os.close();
+        baos.close();
+        return b;
     }
 
   /**

+ 2 - 1
jodconverter-web/src/main/java/cn/keking/web/controller/OnlinePreviewController.java

@@ -88,7 +88,8 @@ public class OnlinePreviewController {
     public void getCorsFile(String urlPath, HttpServletResponse response) {
         logger.info("下载跨域pdf文件url:{}", urlPath);
         try {
-            downloadUtils.saveToOutputStreamFromUrl(urlPath, response.getOutputStream());
+            byte[] bytes = downloadUtils.getBytesFromUrl(urlPath);
+            downloadUtils.saveBytesToOutStream(bytes, response.getOutputStream());
         } catch (IOException e) {
             logger.error("下载跨域pdf文件异常,url:{}", urlPath, e);
         }

+ 1 - 1
pom.xml

@@ -5,7 +5,7 @@
 
     <groupId>cn.keking</groupId>
     <artifactId>filepreview</artifactId>
-    <version>2.2.1-SNAPSHOT</version>
+    <version>2.2.1</version>
     <modules>
         <module>jodconverter-core</module>
         <module>jodconverter-web</module>