spring boot文件上传使文件上传功能能够支持多种图片格式,包括 JPG、PNG、GIF ,并对不支持的格式返回相应的错误信息。 使用集合保存支持的格式列表,在上传时进行校验的代码案例
时间: 2024-11-30 19:14:52 浏览: 2
Spring Boot 提供了强大的MultipartFile处理能力,可以方便地实现文件上传。首先,你需要配置一个文件上传处理器和设置允许的文件类型。这里是一个简单的代码示例,展示如何创建一个支持JPG、PNG、GIF格式图片上传并验证的控制器:
```java
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
public class FileUploadController {
private static final String[] ALLOWED_EXTENSIONS = {".jpg", ".png", ".gif"};
@PostMapping("/upload")
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return new ResponseEntity<>("文件不能为空", HttpStatus.BAD_REQUEST);
}
// 获取文件名和扩展名
String fileName = file.getOriginalFilename();
String extension = fileName.substring(fileName.lastIndexOf(".") + 1);
// 检查是否属于允许的文件类型
Set<String> allowedExtensionsSet = new HashSet<>(Arrays.asList(ALLOWED_EXTENSIONS));
if (!allowedExtensionsSet.contains(extension.toLowerCase())) {
return new ResponseEntity<>("只接受JPG、PNG和GIF格式的图片", HttpStatus.UNSUPPORTED_MEDIA_TYPE);
}
try {
// 进行文件处理,如存储到服务器等...
// 这里省略具体的文件操作,只需验证通过即可
return ResponseEntity.ok("文件上传成功");
} catch (IOException e) {
return new ResponseEntity<>("文件上传失败", HttpStatus.INTERNAL_SERVER_ERROR);
}
}
}
```
在这个例子中,我们创建了一个`handleFileUpload`方法,接收用户上传的`MultipartFile`。首先检查文件是否为空,然后获取文件扩展名并与预设的允许类型做比较。如果不符合,则返回错误响应。如果验证通过,你可以继续处理文件内容。
阅读全文