废话不多说,直接上代码
这个是公共方法,在需要上传的接口controller中调用即可
@PostMapping("/upload")
public R upload(MultipartFile file) {
// 校验文件大小、名字、后缀
CommentMethod.uploadVerify(file);
你的业务代码
}
package cn.fox.demo.common;
import org.springframework.web.multipart.MultipartFile;
import java.util.Arrays;
import java.util.Locale;
/**
* 公共方法
*/
public class CommentMethod {
/**
* 文件后缀 支持的类型 todo 自行舍取
*/
private static final String[] FILE_SUFFIX_SUPPORT = {".xlsx", ".xls", ".doc", ".docx", ".txt", ".csv",
".jpg", ".jpeg", ".png"};
/**
* 文件名字 需要排除的字符 todo 自行舍取
*/
private static final String[] FILE_NAME_EXCLUDE = {
"`", "!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "-", "=", "_", "+",
"~", "·", "!", "¥", "……", "(", ")", "——", "",
"?", ",", "<", ">", ":", ";", "[", "]", "{", "}", "/", "\\", "|",
"?", ",", "。", "《", "》", ":", ";", "【", "】", "、",
};
/**
* 文件大小 10MB todo 自行更改
*/
private static final long FILE_SIZE = 10 * 1024 * 1024;
/**
* 上传文件校验大小、名字、后缀
* @param multipartFile multipartFile
*/
public static void uploadVerify(MultipartFile multipartFile) {
// 校验文件是否为空
if (multipartFile == null) {
throw new RuntimeException("文件不能为空!");
}
// 校验文件大小
long size = multipartFile.getSize();
if(size > FILE_SIZE){
throw new RuntimeException("文件大小不能超过10MB!");
}
// 校验文件名字
String originalFilename = multipartFile.getOriginalFilename();
if (originalFilename == null) {
throw new RuntimeException("文件名字不能为空!");
}
boolean nameFlag = false;
for (String s : FILE_NAME_EXCLUDE) {
if (originalFilename.contains(s)) {
nameFlag = true;
break;
}
}
if(nameFlag){
throw new RuntimeException("文件名字不允许出现"+ Arrays.toString(FILE_NAME_EXCLUDE) +"关键字!");
}
// 校验文件后缀
if (!originalFilename.contains(".")) {
throw new RuntimeException("文件不能没有后缀!");
}
String suffix = originalFilename.substring(originalFilename.lastIndexOf('.'));
boolean flag = true;
for (String s : FILE_SUFFIX_SUPPORT) {
if (s.equals(suffix.toLowerCase(Locale.ROOT))) {
flag = false;
break;
}
}
if(flag){
throw new RuntimeException("文件格式仅限于"+ Arrays.toString(FILE_SUFFIX_SUPPORT) +"!");
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/116361.html