2015-11-05 2 views
1

Возможно, это может быть основной вопрос, но я не мог получить решение, когда я пытался использовать различные ответы, предоставленные в stackoverflow.MultipartFile и String в Post Parameter

Вопрос:

Мне нужно отправить файл из моего Угловое к серверу. Я задал тот же самый вопрос в StackOverflow, и он может быть найден здесь,

Using Multipart without Form in Spring MVC

Теперь вопрос, я хочу послать еще один объект (который не является файлом, вероятно, JSON) на сервер. Как я должен это делать?

Я попытался обернуть многостраничный файл, а также объект JSON в один и отправить его, но попытка не была успешной, поскольку весна ударила меня с некоторым исключением. Прежде всего, правильный ли мой подход? Если это не так, то как мне идти дальше?

ответ

0

Я получил решение с помощью RequestPart аннотацию в определении контроллера,

Благодаря https://stackoverflow.com/a/30043173/3121941. Это дало мне понять, как решить эту проблему.

Обновленный код,

@RequestMapping(value = "/someUrl", method = RequestMethod.POST, consumes = { 
      "multipart/form-data", MediaType.APPLICATION_JSON_VALUE }) 
    public Object handleUpload(
      @RequestPart("paramOne") String paramOne, 
      @RequestPart("paramTwo") String paramTwo, 
      @RequestPart("file") MultipartFile file, Principal user){ 

И мой Угловой код,

$scope.upload = function() { 
     var file = $scope.file; 
     var obj = new Object(); 
     var fd = new FormData(); 
     fd.append("paramOne","xyz"); 
     fd.append("paramTwo","xyz"); 
     fd.append("file", file);   
     var uploadUrl = "/someUrl"; 
     $http.post(uploadUrl, fd, { 
      transformRequest: angular.identity, 
      headers: { 
       'Content-Type': undefined 
      } 
     }).success(function (data) { 
       console.log("Call successful"); 
     }); 
    }