SpringMvc+Angularjs 实现多文件批量上传

2025-05-29 0 97

SpringMvc代码

jar包

commons-fileupload

commons-io

spring-mvc.xml配置

?

1

2

3
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property name="defaultEncoding" value="UTF-8" />

</bean>

Controller

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19
@RequestMapping(value = "api/v1/upload", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)

@ResponseBody

public Map upload (@RequestParam(value = "files") MultipartFile [] files,

@RequestParam(value = "id") String id,

HttpServletRequest request, HttpServletResponse response) {

Map res = new HashMap();

try {

log.info("upload>>>>>id:{}", id);

if (files!=null) {

for (MultipartFile file:files) {

log.info("filename:{}", file.getOriginalFilename());

}

}

} catch (Exception e) {

log.error("upload>>>>异常:{}", e.toString());

}

log.info("upload>>>>返回结果:{}", res);

return res;

}

保存到本地

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16
// copy File

public boolean copyFile (MultipartFile tempFile, String filePath) {

Boolean res = false;

try {

File file = new File(filePath);

if (!file.getParentFile().exists()) {

file.getParentFile().mkdirs();

}

// 将文件拷贝到当前目录下

tempFile.transferTo(file);

res = true;

} catch (Exception e) {

log.info("copyFile>>>>异常:{}", e.toString());

}

return res;

}

AngularJs代码

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37
<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<script src="https://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>

</head>

<body>

<div ng-app="myApp" ng-controller="uploadCtrl">

<p><input type="file" multiple="multiple" name="files"></p>

<p><input type="text" name="id" ng-model="id"></p>

<p><input type="button" value="提交" ng-click="submit()"></p>

</div>

<script>

var app = angular.module('myApp', []);

app.controller('uploadCtrl', ["$scope", "$http", function($scope, $http) {

$scope.submit = function () {

var fd = new FormData();

var files = document.querySelector('input[name="files"]').files;

for (var i=0; i<files.length; i++) {

fd.append("files", files[i]);

}

fd.append("id", $scope.id);

$http({

method:'POST',

url : '/Project/api/v1/upload',

data: fd,

headers: {'Content-Type':undefined},

transformRequest: angular.identity

}).success(function (response) {

console.log(response.data);

}).error(function () {

});

}

}]);

</script>

</body>

</html>

Form表单提交

?

1

2

3

4

5
<form action="/Project/api/v1/upload" method="POST" enctype="multipart/form-data">

<p><input type="text" name="id" /></p>

<p><input type="file" multiple="multiple" id="files" name="files" /></p>

<p><input type="submit" value="Submit" /></p>

</form>

以上所述是小编给大家介绍的SpringMvc+Angularjs 实现多文件批量上,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

原文链接:http://blog.csdn.net/u013836363/article/details/65437141

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 SpringMvc+Angularjs 实现多文件批量上传 https://www.kuaiidc.com/117988.html

相关文章

发表评论
暂无评论