2017-04-20 98 views
0

这是我在春天开机春天引导和Angularjs Multipartfile和应用程序/ XML

@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = "multipart/form-data") 
    @ResponseBody 
    public ResponseEntity<?> test(
      @RequestParam("enveloppe") Enveloppe enveloppe, 
      @RequestParam("files") MultipartFile[] uploadFiles) { 


    } 

控制器这是我在angularJs

var fd = new FormData(); 
    angular.forEach(files, function(file) { 
     fd.append('files', file); 
    }) 
    fd.append('enveloppe', enveloppe, {type :'application/xml'}); 
    $http.post("/test", fd, { 
     transformRequest : angular.identity, 
     headers : { 
      'Content-Type' : undefined 
     } 

春季开机的XSD自动生成的。我的目标“ENVELOPPE”服务。 我的对象“enveloppe”在由json2Xml lib转换的angularjs中有xml。 但是,弹簧引导不能'包装对象包围。 〜

1)有可能做到这一点?

+0

此链接可能会有所帮助的http:// stackoverflow.com/questions/42671510/multipart-file-upload-using-angularjs-and-springmvc/42717177#42717177 – hrdkisback

回答

0

是的,它是可能的,但在FORMDATA的服务,而不是追加,我会说这样做在控制器

<input type="file" id="filename"> 

在你的控制器

var file=document.getElementById("filename").files[0]; 
var formData = new FormData(); 
formData.append("fileKey", file); 

然后发送数据使用服务到后端。

+0

我有技术约束,我有文件列表,我可以给森d 6个文件在一起。 – Viet47

0

我发现春天的引导和XML解决方案的第二部分与@RequestPart

我控制器

@RequestMapping(value = "/test", method = RequestMethod.POST, consumes = "multipart/form-data") 
    @ResponseBody 
    public ResponseEntity<?> test(
      @RequestPart("enveloppe") Enveloppe enveloppe, 
      @RequestPart("files") MultipartFile[] uploadFiles) { 


    } 

angularjs服务

var fd = new FormData(); 
     angular.forEach(files, function(file) { 
      fd.append('files', file); 
     }) 
     fd.append('enveloppe', new Blob([enveloppe], {type: 'application/xml'})); 

     $http.post("/test", fd, { 
      transformRequest : angular.identity, 
      headers : { 
       'Content-Type' : undefined 
      }