ng-file-upload multiple file upload / spring controller

ng-file-upload 라이브러리를 이용해서 파일을 여러개와 다른 컨텐츠들을 보내고 싶을때, 


1
<input type="file" ngf-select="app.onFileSelect2($files)" multiple="multiple" />
cs



html에 ngf-select를 선언해서 파일을 특정 변수에 담는다. 


1
2
3
4
5
var vm = this;
 
vm.onFileSelect2 = function($files){
    vm.file = $files;
}
cs



ajax 부분에서 arrayKey에 '' 값을 선언해 준다. 


1
2
3
4
5
6
7
8
9
10
11
12
13
 vm.dataFrm = {
    name:'test',
    age:10
 }
 
 Upload.upload({
   url: 'fileupload url',
   fields: vm.dataFrm,    // send variable
   file: vm.file,
   arrayKey: ''           // <-- important
}).success(function (data, status, headers, config) {
   console.log("success");
});
cs



마지막으로 spring controller 부분에서 개별적으로 받을수도 있지만 @modelattribute를 이용해서 VO로 받을수 있다. 


1
2
3
4
5
6
7
8
9
10
public void upload(@RequestParam("file") MultipartFile file, @RequestParam("username"String username )

...
// VO
public class DataParam{
    private MultipartFile[] file;
    private String username
    ....
}
 
public void upload(@ModelAttribute DataParam param) ...
cs


s