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

时间:2021-05-19

SpringMvc代码

jar包

commons-fileupload

commons-io

spring-mvc.xml配置

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="UTF-8" /></bean>

Controller

@RequestMapping(value = "api/v1/upload", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)@ResponseBodypublic 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;}

保存到本地

// 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代码

<!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表单提交

<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 实现多文件批量上,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章