Commit 7e5dfadf authored by daniel's avatar daniel

fix(upload): 上传文件校验

parent 14fe1379
......@@ -77,13 +77,13 @@ public class CommonController {
}
String extension = originalFilename.substring(lastIndex).toLowerCase();
// 检查文件扩展名是否允许
// if (!ALLOWED_FILE_TYPES.containsKey(extension)) {
// return Result.fail().setMsg("不允许上传该文件类型,请检查文件");
// }
// // 检查文件魔数
// if (!checkFileMagicNumber(file.getBytes(), extension)) {
// return Result.fail().setMsg("文件类型与扩展名不符,请检查文件");
// }
if (!ALLOWED_FILE_TYPES.containsKey(extension)) {
return Result.fail().setMsg("不允许上传该文件类型,请检查文件");
}
// 检查文件魔数
if (!checkFileMagicNumber(file.getBytes(), extension)) {
return Result.fail().setMsg("文件类型与扩展名不符,请检查文件");
}
String objectName = UUID.randomUUID() + extension;
if (!Objects.equals(folder, "")) {
objectName = folder + "/" +cmptId+ "/" + objectName;
......@@ -105,12 +105,17 @@ public class CommonController {
try {
String originalFilename = file.getOriginalFilename();
assert originalFilename != null;
// 检查文件名中是否包含点号
int lastIndex = originalFilename.lastIndexOf(".");
if (lastIndex == -1) {
// 如果没有后缀名,直接返回报错信息
return Result.fail().setMsg("上传的文件没有后缀名,请检查文件");
}
String extension = originalFilename.substring(lastIndex).toLowerCase();
if (!ALLOWED_FILE_TYPES.containsKey(extension)) {
return Result.fail().setMsg("不允许上传该文件类型,请检查文件");
}
if (!checkFileMagicNumber(file.getBytes(), extension)) {
return Result.fail().setMsg("文件类型与扩展名不符,请检查文件");
}
String objectName = fileName;
if (!Objects.equals(folder, "")) {
objectName = folder + "/" + fileName;
......@@ -128,24 +133,26 @@ public class CommonController {
@ApiOperation(value = "参赛声明上传")
public Result<?> uploadClaimer(@RequestPart @RequestParam("file") MultipartFile file,@RequestParam(value = "gCmptId") Integer gCmptId) {
try {
// 检查文件大小是否超过1MB
long maxFileSize = 5 * 1024 * 1024; // 1MB
long maxFileSize = 5 * 1024 * 1024;
if (file.getSize() > maxFileSize) {
return Result.fail().setMsg("上传文件大小不能超过5MB");
}
String originalFilename = file.getOriginalFilename();
if (originalFilename == null || originalFilename.isEmpty()) {
return Result.fail().setMsg("文件名不能为空");
}
assert originalFilename != null;
// 检查文件名中是否包含点号
int lastIndex = originalFilename.lastIndexOf(".");
if (lastIndex == -1) {
// 如果没有后缀名,直接返回报错信息
return Result.fail().setMsg("上传的文件没有后缀名,请检查文件");
}
String extension = originalFilename.substring(lastIndex).toLowerCase();
if (!ALLOWED_FILE_TYPES.containsKey(extension)) {
return Result.fail().setMsg("不允许上传该文件类型,请检查文件");
}
if (!checkFileMagicNumber(file.getBytes(), extension)) {
return Result.fail().setMsg("文件类型与扩展名不符,请检查文件");
}
String objectName = "micro/" +gCmptId+ "_cmptId/mianze.png";
String filePath = aliOssUtil.upload(file.getBytes(), objectName);
log.info("文件上传名: {} 保存的文件名:{}", originalFilename,filePath);
......@@ -160,24 +167,26 @@ public class CommonController {
@ApiOperation(value = "选号背景上传")
public Result<?> uploadSelectMarkNoBg(@RequestPart @RequestParam("file") MultipartFile file,@RequestParam(value = "gCmptId") Integer gCmptId,@RequestParam(value = "roadId") String roadId) {
try {
// 检查文件大小是否超过1MB
long maxFileSize = 5 * 1024 * 1024; // 1MB
long maxFileSize = 5 * 1024 * 1024;
if (file.getSize() > maxFileSize) {
return Result.fail().setMsg("上传文件大小不能超过5MB");
}
String originalFilename = file.getOriginalFilename();
if (originalFilename == null || originalFilename.isEmpty()) {
return Result.fail().setMsg("文件名不能为空");
}
assert originalFilename != null;
// 检查文件名中是否包含点号
int lastIndex = originalFilename.lastIndexOf(".");
if (lastIndex == -1) {
// 如果没有后缀名,直接返回报错信息
return Result.fail().setMsg("上传的文件没有后缀名,请检查文件");
}
String extension = originalFilename.substring(lastIndex).toLowerCase();
if (!ALLOWED_FILE_TYPES.containsKey(extension)) {
return Result.fail().setMsg("不允许上传该文件类型,请检查文件");
}
if (!checkFileMagicNumber(file.getBytes(), extension)) {
return Result.fail().setMsg("文件类型与扩展名不符,请检查文件");
}
String objectName = "micro/"+ gCmptId+"_cmptId/" + gCmptId+ "_"+roadId+".png";
String filePath = aliOssUtil.upload(file.getBytes(), objectName);
log.info("文件上传名: {} 保存的文件名:{}", originalFilename,filePath);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment