Есть ли способ отобразить изображение из базы данных MySql в тимили и весенней загрузке? - PullRequest
0 голосов
/ 15 апреля 2019

Я создал базу данных MySQL с именем: отдел.Я могу отобразить все остальные столбцы из базы данных, кроме «логотипа» в формате BLOB.Я могу сохранить изображение в «логотип», но не могу отобразить его в таблице тимелист.Нужен ли мне отдельный контроллер для отображения изображения?

Вот мой Thymeleaf для отображения изображения:

<td>
<img th:src="${tempDepartment.logo}" >
</td>

Это моя сущность:

@Id
@Column(name="id")
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;

@Column(name="dept_name")
private String deptName;

@Lob    
@Column(name="logo")
private byte[] logo;

Это мойКонтроллер:

//lists all departments
    @GetMapping("/departments")
    public String listDepartments(Model model) {
        List<Department> departments = departmentService.findAll();
        model.addAttribute("departments",departments);
        return "/departments/list"; // Your current thymeleaf template
    }

    //adding a new department
    @GetMapping("/showFormForAdd")
    public String showFormForAdd(Model theModel) {

        Department theDepartment=new Department();
        theModel.addAttribute("department",theDepartment);

        return "/departments/department-form";

    }

    //saving a department
    @PostMapping("/save")
        public String saveDepartment(@ModelAttribute("department") 
           Department theDepartment) {
            departmentService.save(theDepartment);
            return "redirect:/home/departments";
        }

Я хочу отобразить изображение из базы данных, но оно не отображается.

1 Ответ

1 голос
/ 15 апреля 2019

Измените byte[] на Base64 изображение и в html файле вам нужно попробовать это ..

< img th:src="*{'data:image/png;base64,'+image}" alt="" />

вместо

<img th:src="${tempDepartment.logo}" > 

здесь ваш код тимелина будет работать, если ваш контроллер имеет этот параметр produces = MediaType.IMAGE_PNG_VALUE

для получения более подробной информации пройдите по этой ссылке

...