SpringMvc+Angularjs 多文件批量上传
2017-03-23 09:54
447 查看
SpringMvc代码
jar包
commons-fileuploadcommons-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表单提交
< 4000 code class="language-html hljs "><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 实现多文件批量上传
- angularjsFileUpload+Springmvc上传文件
- angularjsFileUpload+Springmvc上传文件
- 【springmvc+jquery.form.min.js+spring文件上传】
- 简单实现:jquery ajax/jquery.form.js + springmvc上传文件,带进度条
- spring boot+angularjs实现文件上传
- Spring+SpringMVC 文件批量同步上传
- 基于Spring3 MVC实现基于form表单上传Excel文件,批量导入数据!
- Springmvc+uploadify实现批量上传文件(显示进度条)
- webuploader+springmvc实现多文件上传(html+js+css原创,后台代码借鉴)
- springmvc+jquery+ajaxfileupload.js实现带有文本域的文件上传
- SpringMVC + FormDate + Vue + file表单 ( 实现 js 单文件和多文件上传 )
- 基于Spring3 MVC实现基于form表单上传Excel文件,批量导入数据时,报错:Unable to recognize OLE stream !
- ajaxfileupload.js+SpringMVC实现文件上传
- SpringMVC+ajaxFileUpload.js实现文件上传
- ajaxfileupload.js+springMVC实现无刷新文件上传
- Jquery+SpringMVC实现上传Excel文件,并批量导入
- 上传文件总结--使用springMVC+ajaxfileupload.js
- 文件上传功能 -- jquery.form.js/springmvc
- SpringMVC+ajaxfileupload.js实现文件无刷新上传