+ * 在Controller层调用时需要返回void + */ public static Boolean downloadResource(String resourceName, HttpServletResponse response) throws IOException { - @Cleanup InputStream is = FileUtils.class.getResourceAsStream(resourceName); - if (is == null) { - throw new FileNotFoundException("该文件不存在"); - } - @Cleanup BufferedInputStream bis = new BufferedInputStream(is); + @Cleanup InputStream is = FileUtils.class.getClassLoader().getResourceAsStream(resourceName); + BufferedInputStream bis = new BufferedInputStream(is); + bis.mark(bis.available() + 1); response.setContentType(MimeTypeUtils.APPLICATION_OCTET_STREAM_VALUE); response.setCharacterEncoding("UTF-8"); ServletOutputStream out = response.getOutputStream(); - response.addHeader("File-Digest", DigestUtils.md5DigestAsHex(bis)); + response.addHeader(HEADER_FILE_DIGEST, DigestUtils.md5DigestAsHex(bis)); + bis.reset(); @Cleanup BufferedOutputStream bos = new BufferedOutputStream(out); bis.transferTo(bos); + bis.close(); bos.flush(); return true; } diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/TokenUtils.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/TokenUtils.java index c41330e..c2da352 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/TokenUtils.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/TokenUtils.java @@ -19,6 +19,7 @@ import java.util.Date; public final class TokenUtils { private final static String PV_KEY = "SignedByRMDJZZ"; + public final static String HEADER_TOKEN = "Token"; private final static String STAFF_USERNAME = "staffUsername"; private final static String STAFF_ID = "staffId"; private final static String STAFF_GLOBAL_LEVEL = "staffGlobalLevel"; diff --git a/src/main/resources/static/账户导入模板.xlsx b/src/main/resources/static/账户导入模板.xlsx new file mode 100644 index 0000000..35cd573 Binary files /dev/null and b/src/main/resources/static/账户导入模板.xlsx differ