deason 6 years ago
parent
commit
4d4fa619d8

+ 17 - 0
examcloud-core-print-common/src/main/java/cn/com/qmth/examcloud/core/print/common/utils/FileUtils.java

@@ -12,6 +12,8 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.*;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.nio.charset.Charset;
 import java.text.SimpleDateFormat;
 import java.util.Date;
@@ -155,4 +157,19 @@ public class FileUtils {
         }
     }
 
+    public static void saveURLToFile(String link, File file) {
+        if (link == null || file == null) {
+            // ignore
+            return;
+        }
+        try {
+            URL url = new URL(link);
+            org.apache.commons.io.FileUtils.copyURLToFile(url, file);
+        } catch (MalformedURLException e) {
+            log.error(e.getMessage(), e);
+        } catch (IOException e) {
+            log.error(e.getMessage(), e);
+        }
+    }
+
 }

+ 15 - 1
examcloud-core-print-service/src/main/java/cn/com/qmth/examcloud/core/print/service/impl/CoursePaperServiceImpl.java

@@ -318,8 +318,12 @@ public class CoursePaperServiceImpl implements CoursePaperService {
         FileUtils.makeDirs(paperDir);
         FileUtils.makeDirs(answerDir);
 
+        //下载试卷或答案文件
         for (ExportFileInfo info : exportFiles) {
-            //todo upyun
+            this.loadFile(paperDir, info.getPaperWord());
+            this.loadFile(paperDir, info.getPaperPdf());
+            this.loadFile(answerDir, info.getAnswerWord());
+            this.loadFile(answerDir, info.getAnswerPdf());
         }
 
         //压缩打包所有文件
@@ -339,4 +343,14 @@ public class CoursePaperServiceImpl implements CoursePaperService {
         return zipFile;
     }
 
+    private void loadFile(String dir, Pair<String, String> pair) {
+        if (pair == null) {
+            //未指定时则不用下载
+            return;
+        }
+        //key为文件名,value为文件链接地址
+        final String filePath = dir + "/" + pair.getKey();
+        FileUtils.saveURLToFile(pair.getValue(), new File(filePath));
+    }
+
 }