@Configuration
public class WebConfig implements WebMvcConfigurer{
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/images/**").addResourceLocations("file:" + System.getProperty("user.dir") + "/images/");
}
}
Open file application.properties and insert code following
# Thư mục lưu file upload
file.upload-dir=images
# Giới hạn dung lượng upload (ví dụ: 10MB)
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
Create UploadController.java and implement upload file
@Controller
public class UploadController {
@Value("${file.upload-dir}")
private String uploadDir;
@PostMapping("/upload")
String upload(@RequestParam("f") MultipartFile f, Model model){
Path uploadPath = Paths.get(uploadDir).toAbsolutePath().normalize();
Path targetPath = uploadPath.resolve(f.getOriginalFilename());
try {
f.transferTo(targetPath.toFile());
model.addAttribute("imageUrl", f.getOriginalFilename());
} catch (IllegalStateException | IOException e) {
e.printStackTrace();
}
return "upload/index";
}
}