springboot multipart 校验文件是否合法
时间: 2023-07-23 18:39:08 浏览: 60
要校验文件是否合法,可以使用MultipartFile的一些方法。以下是一个示例代码:
```java
@PostMapping("/upload")
public ResponseEntity<String> uploadFile(@RequestParam("file") MultipartFile file) {
if (file.isEmpty() || file.getContentType() == null) {
return ResponseEntity.badRequest().body("Invalid file");
}
// 校验文件类型
if (!isValidFileType(file)) {
return ResponseEntity.badRequest().body("Invalid file type");
}
// 校验文件大小
if (!isValidFileSize(file)) {
return ResponseEntity.badRequest().body("File size too large");
}
// 处理上传的文件
return ResponseEntity.ok("File uploaded successfully");
}
private boolean isValidFileType(MultipartFile file) {
String[] allowedTypes = {"image/jpeg", "image/png", "application/pdf"};
for (String type : allowedTypes) {
if (file.getContentType().equals(type)) {
return true;
}
}
return false;
}
private boolean isValidFileSize(MultipartFile file) {
long maxSize = 10 * 1024 * 1024; // 10MB
return file.getSize() <= maxSize;
}
```
在上述代码中,我们首先校验了文件是否为空或者ContentType是否为null,如果不是合法的文件,则返回错误响应。接着,我们使用isValidFileType()方法校验文件类型是否合法,如果不是合法的文件类型,则返回错误响应。最后,我们使用isValidFileSize()方法校验文件大小是否合法,如果文件大小超过了10MB,则返回错误响应。如果所有的校验都通过,则可以继续处理上传的文件。