2017-04-20 41 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 
      }