SpringMvc+Angularjs 实现多文件批量上传
更新时间:2017年03月23日 11:03:10 作者:y0yO011
本文通过实例代码给大家讲解了SpringMvc+Angularjs 实现多文件批量上传功能,非常不错,具有参考借鉴价值,需要的朋友一起学习吧
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) @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; }
保存到本地
// 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 实现多文件批量上,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
相关文章
SpringBoot整合Mybatis与druid实现流程详解
这篇文章主要介绍了springboot整合mybatis plus与druid详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的下伙伴可以参考一下2022-10-10java serialVersionUID解决序列化类版本不一致问题面试精讲
这篇文章主要为大家介绍了serialVersionUID解决序列化类版本不一致问题的面试精讲,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-10-10基于Rest的API解决方案(jersey与swagger集成)
下面小编就为大家带来一篇基于Rest的API解决方案(jersey与swagger集成)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-08-08
最新评论