From aa3256f25ea88527455f96c02d39e6e319fcf8e4 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期三, 09 八月 2023 17:53:20 +0800
Subject: [PATCH] 不合格反馈与不合格评审
---
framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java | 69 ++++++++++++++++++++++++++++++----
1 files changed, 61 insertions(+), 8 deletions(-)
diff --git a/framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java b/framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java
index 75e28eb..1fd71d9 100644
--- a/framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java
+++ b/framework/src/main/java/com/yuanchu/limslaboratory/utils/FileSaveUtil.java
@@ -1,10 +1,16 @@
package com.yuanchu.limslaboratory.utils;
+import com.yuanchu.limslaboratory.exception.MyFileException;
import lombok.extern.slf4j.Slf4j;
import org.apache.tomcat.util.http.fileupload.IOUtils;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
+import org.springframework.util.FileSystemUtils;
+import org.springframework.web.multipart.MultipartFile;
+import javax.annotation.PostConstruct;
import java.io.ByteArrayInputStream;
+import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -16,32 +22,62 @@
public class FileSaveUtil {
// 鍙杫ml涓殑璺緞 + /
-// @Value("${file.path}")
- private String FILE_PATH;
+ private static String FILE_PATH;
+ private static String[] ALLOWED;
+
+ @Value("${file.path}")
+ private String file;
+
+ @Value("${file.allowed}")
+ private String[] allowed;
+
+ @PostConstruct
+ public void getFile() {
+ FILE_PATH = this.file;
+ }
+
+ @PostConstruct
+ public void getAllowed(){
+ ALLOWED = this.allowed;
+ }
/**
* 瀛樺偍鏂囦欢涓诲嚱鏁�
- * @param content 鏂囦欢浜岃繘鍒舵祦
- * @param originalFilename 鏂囦欢鍚嶇О
+ * @param file 鏂囦欢浜岃繘鍒舵祦
* @return 杩斿洖鏂囦欢鍚嶇О鐢ㄤ簬瀛樺偍鏁版嵁搴�
*/
- public String StoreFile(byte[] content, String originalFilename) {
+ public static String StoreFile(MultipartFile file) {
+ String originalFilename = file.getOriginalFilename();
// 鐢熸垚闅忔満鍚嶇О锛氭椂闂確闅忔満6浣嶆暟瀛�
String FileName = System.currentTimeMillis() + "_" + MyUtil.getNumber(6);
- String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
+ String suffix = null;
+ if (originalFilename != null) {
+ suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
+ // 濡傛灉鍚庣紑鍚嶄笉閫氳繃鎶涘嚭寮傚父
+ if (!isFileAllowed(suffix)){
+ throw new MyFileException(suffix);
+ }
+ }
// 鍚嶇О鎷兼帴
String fileName = FileName + suffix;
// 杩涜瀛樺偍
- storeFileWithFileName(content, fileName);
+ try {
+ storeFileWithFileName(file.getBytes(), fileName);
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
return fileName;
}
+ public static Boolean DeleteFile(String fileName) {
+ return FileSystemUtils.deleteRecursively(new File(FILE_PATH + "/" + fileName));
+ }
/**
* 瀛樺偍鏂囦欢鍑芥暟
* @param content 鏂囦欢浜岃繘鍒舵祦
* @param fileName 鏂囦欢鍚嶇О
*/
- private void storeFileWithFileName(byte[] content, String fileName) {
+ private static void storeFileWithFileName(byte[] content, String fileName) {
// 瀛樺偍璺緞
String path = FILE_PATH + java.io.File.separatorChar;
// 鐩綍涓嶅瓨鍦ㄥ垯鍒涘缓
@@ -57,4 +93,21 @@
MyUtil.PrintLog("瀛樺偍鏂囦欢寮傚父锛�" + e);
}
}
+
+ /**
+ * 鍒ゆ柇鏂囦欢鏄惁琚厑璁镐笂浼�
+ *
+ * @param fileName 鏂囦欢鍚�
+ * @return 鍏佽true, 鍚﹀垯false
+ */
+ private static boolean isFileAllowed(String fileName) {
+ // 鑾峰彇鍚庣紑鍚�
+ String suffixName = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase();
+ for (String allow : ALLOWED) {
+ if (allow.equals(suffixName)) {
+ return true;
+ }
+ }
+ return false;
+ }
}
--
Gitblit v1.9.3