Как достать из JSON строку и файл? (java)

193
29 апреля 2018, 21:15

Значит в JS запаковываю изображение и нужную мне строку отправляю как json:

var form = document.forms[2];
var formData = new FormData(form);
var json = {
    "id": id,
    "file": formData
};
$.ajax( "URL", {
    data: JSON.stringify(json),
    type: "post",
    contentType: "application/json",
    success: function (data) {
        if(data == true){
            window.location.reload();
        }
    },
    error: function () {
        alert("Ошибка!");
    }
});

А на стороне RestControllera не получается достать эти данные.

@RequestMapping(value = "/save-avatar", method = RequestMethod.POST)
public boolean saveUserAvatar(@RequestBody String data){
    JSONObject json = new JSONObject(data);
    int id = Integer.valueOf(json.getString("id"));
    MultipartFile multipartFile = (MultipartFile) json.get("file");
}

точнее строка достается, а файл нет.

Если из JS отправлять только один файл то на стороне контроллера я достаю его таким образом:

@RequestMapping(value = "change-avatar", method = RequestMethod.POST)
public @ResponseBody void changeAvatar(MultipartHttpServletRequest request){
    MultipartFile multipartFile = request.getFile("file");
}

Как достать и строку и файл на стороне контроллера?

READ ALSO
Оставить только 1 страну в коде mango callback

Оставить только 1 страну в коде mango callback

На сайт поставили код mango office callback ( https://wwwmango-office

194
Реально ли вывести 2 видео в одном окне?

Реально ли вывести 2 видео в одном окне?

Стала передомной задача взаимодействовать web-camery пользователя с 3D модельюВзаимодействие заключается в определении положения головы пользователя...

254
Нужна помощь в настройке юнит-тестов

Нужна помощь в настройке юнит-тестов

Пытаюсь настроить и запустить юнит-тестирование Angular с помощью Jest, но что-то не очень понимаю что конкретно нужно сделатьПосле прочтения...

178
Чтение данных из конкретного файла

Чтение данных из конкретного файла

Прочитать файл из файла можно, например, так: new FileReader (смкод ниже)

172