deason 1 年之前
父節點
當前提交
569af8dc20

+ 23 - 3
src/main/java/cn/com/qmth/examcloud/tool/controller/BaseController.java

@@ -3,6 +3,7 @@ package cn.com.qmth.examcloud.tool.controller;
 import cn.com.qmth.examcloud.tool.config.Constants;
 import cn.com.qmth.examcloud.tool.vo.user.Role;
 import cn.com.qmth.examcloud.tool.vo.user.User;
+import org.apache.commons.io.IOUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.web.context.request.RequestContextHolder;
@@ -11,9 +12,8 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.OutputStream;
+import java.io.*;
+import java.net.URL;
 import java.net.URLEncoder;
 
 public class BaseController {
@@ -78,4 +78,24 @@ public class BaseController {
         }
     }
 
+    protected byte[] getSourceFile(String sourceName) {
+        InputStream is = null;
+        try {
+            URL url = BaseController.class.getClassLoader().getResource(sourceName);
+            if (url != null) {
+                is = url.openStream();
+                return IOUtils.toByteArray(is);
+            }
+        } catch (IOException e) {
+            log.error(e.getMessage(), e);
+        } finally {
+            if (is != null) {
+                IOUtils.closeQuietly(is);
+            }
+        }
+
+        log.warn("文件不存在!{}", sourceName);
+        return new byte[0];
+    }
+
 }

+ 4 - 9
src/main/java/cn/com/qmth/examcloud/tool/controller/IndexController.java

@@ -1,6 +1,5 @@
 package cn.com.qmth.examcloud.tool.controller;
 
-import cn.com.qmth.examcloud.tool.config.Constants;
 import cn.com.qmth.examcloud.tool.enums.TaskStatus;
 import cn.com.qmth.examcloud.tool.enums.TaskType;
 import cn.com.qmth.examcloud.tool.service.CommonService;
@@ -10,8 +9,6 @@ import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.GetMapping;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.File;
-import java.net.URL;
 
 @Controller
 public class IndexController extends BaseController {
@@ -90,16 +87,14 @@ public class IndexController extends BaseController {
 
     @GetMapping("/admin/downloadTemplate/importExamStudent")
     public void downloadTemplate1(HttpServletResponse response) {
-        URL url = Constants.class.getClassLoader().getResource("templates/import_exam_student.xlsx");
-        File file = new File(url.getPath());
-        super.download(response, file, "批量导入考生模板.xlsx");
+        byte[] bytes = super.getSourceFile("templates/import_exam_student.xlsx");
+        super.download(response, bytes, "批量导入考生模板.xlsx");
     }
 
     @GetMapping("/admin/downloadTemplate/importUser")
     public void downloadTemplate2(HttpServletResponse response) {
-        URL url = Constants.class.getClassLoader().getResource("templates/import_user.xlsx");
-        File file = new File(url.getPath());
-        super.download(response, file, "批量创建用户模板.xlsx");
+        byte[] bytes = super.getSourceFile("templates/import_user.xlsx");
+        super.download(response, bytes, "批量创建用户模板.xlsx");
     }
 
 }