Spring 4 mvc загрузка файла используя @ModelAtribute

414
14 марта 2017, 13:27

Здравствуйте. Изучаю спринг, пытаюсь загрузить фото. Есть модель типа:

class Photo
{
    private int id;
    private String name;
    private byte[] photo;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public byte[] getPhoto() {
        return photo;
    }
    public void setPhoto(byte[] photo) {
        this.photo = photo;
    }
}

Когда в форме присутствует enctype=multipart/form-data и в контролере вызывается геттер getPhoto(), то получаемый файл null, если в форме не ставить multipart то все работает, но загружается не файл а его имя.

Я так понимаю в контролере нужно получить объект типа Multipart? Вопрос как это сделать если в модели объявлен byte[] для последующей записи в БД.

Пробовал совместно с @ModelAtribute использовать @RequestParam("photo") MultipartFile file, но так значение получить не удалось.

В какую сторону еще посмотреть, чтоб все таки загрузить именно файл а не его имя?

Answer 1

Проблема решена. Отсутствовало переопределение следующего метода, для поддержки Servlet 3

@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration)
{
}
READ ALSO
Два активити одном java-файле

Два активити одном java-файле

Могу ли я так, в одном java-файле два активити прописать? Те надо сделать так, чтобы когда загружался java-файл, он загрузил два активити - один...

208
java.lang.SecurityException: Invalid certificates

java.lang.SecurityException: Invalid certificates

Взял лаунчер из этого репозитория: Launcher Minecraft

270
Циклические башни [требует правки]

Циклические башни [требует правки]

Нужно составить алгоритм для этой задачи

618
Не срабатывает onDestroy

Не срабатывает onDestroy

Имеется активити, в которой в onCreate вызываю фрагмент видео плеераВо фрагменте есть методы:

277