2015-03-02 2 views
3

Итак, у меня есть форма, созданная с помощью AngularJS (совсем не подходит для проекта, но это то, что использовал этот парень), который имеет стандартные поля вместе с входами типа «файл». Из того, что я прочитал, похоже, что объект FormData будет хорошим способом сохранить форму, за исключением того, что я не могу заставить ее работать вообще. Я пробовал использовать методы here без каких-либо успехов, и я думаю, проблема в том, что я неправильно пишу контроллер. Реальная форма имеет много больше полей и несколько файлов, но это упрощенный тест, который я пытался добраться до работы:POST FormData объект для Spring MVC

HTML:

<form enctype="multipart/form-data" method="post" name="testform"> 
    <input type="file" name="file" required /> 
    <input type="text" name="name"/> 
</form> 

JS:

function submit() { 
var fd = new FormData(document.getElementById("testform")); 
$.ajax({ 
    url: saveUrl, 
    type: "POST", 
    data: fd, 
    processData: false, // tell jQuery not to process the data 
    contentType: false, // tell jQuery not to set contentType 
    success: function (result) {...} 
}); 
} 

I «Пробовал много вариаций контроллера с помощью MultipartHttpServletRequest, объекта, моделирующего форму, разных заголовков и т. д. Ничто не было действительно близко к работе, но что-то неясно:

Если кто-то может помочь, это будет потрясающе. Я также открыт для альтернативных методов сделать это, я едва знаю, Угловой и я довольно новый для весны, так что, может быть, я беру неправильный подход все вместе ...

ответ

1

Попробуйте

@RequestMapping(value = "/addProfilePicForPage", method = RequestMethod.POST) 
public String methodName(MultipartHttpServletRequest request, @RequestParam String pageid) { 
     ... 
} 
Смежные вопросы