Tôi đang sử dụng mvc mùa xuân với thymeleaf để tải hình ảnh lên máy chủ và hiển thị hình ảnh sau khi gửi biểu mẫu trong một "trang kết quả" riêng biệt.hình ảnh tải lên không hiển thị cho đến khi tôi làm mới trang Spring Mvc
vấn đề là hình ảnh không được hiển thị cho đến khi tôi làm mới thư mục tài nguyên "tài nguyên/tĩnh/hình ảnh" trong Spring Tool Suite và sau đó làm mới trang. tôi sửa đổi tùy chọn không gian làm việc nhật thực để làm mới tự động và phần ide giải quyết nhưng vẫn cần phải làm mới trang kết quả để có được những hình ảnh hiển thị
Đây là mã điều khiển
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String contentSubmit(@Valid @ModelAttribute ContentEntity cm, BindingResult result,
@RequestParam("file") MultipartFile file, Model model) {
if (!file.isEmpty()) {
try {
cm.setImgUrl(file.getOriginalFilename());
byte[] bytes = file.getBytes();
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(new File("src/main/resources/static/images/"+cm.getImgUrl())));
stream.write(bytes);
stream.close();
} catch (Exception e) {
//return error page
}
}
if (result.hasErrors()) {
return "cms";
}
contentDao.addContent(cm);
return "view";
}
và đây là mã xem
<img th:src="@{'images/'+${contentEntity.imgUrl}}" class="image-responsive thumbnail" />
Máy chủ không phục vụ hình ảnh từ 'src/main/resources /'. Nó phục vụ chúng từ một ứng dụng web được xây dựng từ thư mục này (và các ứng dụng khác). Xem xét ứng dụng web như một tệp chiến tranh lớn mà bạn không thể sửa đổi khi chạy (vì đó là những gì nó nên là). Hãy xem xét các hình ảnh được tải lên dưới dạng dữ liệu, được lưu trữ ở đâu đó ** ra khỏi ứng dụng ** trên máy chủ web sản xuất hoặc trong cơ sở dữ liệu, bởi vì đó là những gì chúng đang có. Bạn cần một servlet hoặc bộ điều khiển có một ID hình ảnh, đọc tệp tin tương ứng hoặc blob cơ sở dữ liệu và gửi lại dữ liệu cho trình duyệt, với kiểu nội dung thích hợp. –