82580-导入文档拆分详情修改

This commit is contained in:
wangzhijiang
2024-03-08 18:57:41 +08:00
parent edbb3cdfc2
commit 94900c9430
2 changed files with 69 additions and 24 deletions
@@ -300,4 +300,41 @@ public class FileUnZip {
return resultlist; return resultlist;
} }
/**
* 验证文件白名单
* @param path
* @param suffixs
* @return
*/
public static boolean checkFileWhitelist(String path,String suffixs) {
boolean result = true;
String[] suffixArr = suffixs.split(",");
File file = new File(path);
if (file.isDirectory()) {
File[] files = file.listFiles();
// 对文件进行过滤
for (File fi : files) {
String name = fi.getName();
int lastIndexOfDot = name.lastIndexOf('.');
String fileSuffix = name.substring(lastIndexOfDot);
boolean flag = false;
for (String suffix : suffixArr) {
if (fileSuffix.equals(suffix)) {
flag = true;
break;
}
}
if (!flag) {
result = flag;
break;
}
}
}
return result;
}
} }
@@ -1543,7 +1543,7 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
saveDirectory.mkdir(); saveDirectory.mkdir();
} }
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path +File.separator+ file.getOriginalFilename())); FileUtils.copyInputStreamToFile(file.getInputStream(), new File(path +File.separator+ file.getOriginalFilename()));
try{
//解压缩 //解压缩
String zipEntryName = FileUnZip.unZipFiles2(path +File.separator+ file.getOriginalFilename(), path); String zipEntryName = FileUnZip.unZipFiles2(path +File.separator+ file.getOriginalFilename(), path);
// 数据相关处理, // 数据相关处理,
@@ -1569,6 +1569,14 @@ public class FileSplitItemsEOServiceImpl extends ServiceImpl<FileSplitItemsEOMap
} }
return Result.error(1, resultMsg); return Result.error(1, resultMsg);
} }
String suffixs = ".xls,.xlsx,.jpg,.jpeg,.png,.gif";
boolean checkFileWhitelistFlag = FileUnZip.checkFileWhitelist(zipEntryName, suffixs);
if (!checkFileWhitelistFlag) {
throw new JeroBootException("导入的文件中包含不合法文件,图片只能上传 .jpg、.jpeg、.png、.gif 格式");
}
try{
File excelfile = excelfilelist.get(0); File excelfile = excelfilelist.get(0);
try { try {