SpringMvc+Angularjs 实现多文件批量上传
作者:y0yO011 发布时间:2023-12-08 23:25:24
标签:spring,mvc,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 实现多文件批量上网站的支持!
来源:http://blog.csdn.net/u013836363/article/details/65437141


猜你喜欢
- 本文实例讲述了C#警惕匿名方法造成的变量共享。分享给大家供大家参考,具体如下:匿名方法匿名方法是.NET 2.0中引入的高级特性,“匿名”二
- XuLIeHua类库using System;using System.Collections; using System.Co
- 下载及启动Nacos 下载地址:https://github.com/alibaba/nacos/releases在Windows下,进入b
- 本文为大家分享了java画出五子棋游戏棋盘的方法,供大家参考,具体内容如下棋盘模块:画五子棋棋盘:19条横线、19条竖线步骤一:显示棋盘我有
- 本文实例讲述了C#集合遍历时删除和增加元素的方法。分享给大家供大家参考,具体如下:大多数时候,遍历集合元素的时候并不需要对元素进行增加或者删
- 进度条以一种客观化的方式,让我们知道程序正在执行的情况,在程序需要时间执行任务的时候,提示进度条友好的告诉用户说,当前任务还没有完成,请稍稍
- 简介:Springboot使用Mybatis&Mybatis-plus 两者文件映射配置略有不同,之前我用的是Mybatis,但公司
- DBUtils工具包一.介绍DBUtils是Apache组织开源的数据库工具类。二.使用步骤①.创建QueryRunner对象②.调用upd
- 使用linq把多列的List转化为只有指定列的List1、方式一2、方式二
- 一、匹配字符串正则1//正则1 Regex r = new
- 前言Activity是Android中一个很重要的概念,堪称四大组件之首,关于Activity有很多内容,比如生命周期和启动Flags,这二
- 一. 假设需求场景在我们开发的过程中,经常出现两个对象存在一对多或多对一的关系。如何在程序在表明这两个对象的关系,以及如何利用这种关系优雅地
- 使用enum进行定义/*枚举类型演示*/#include <stdio.h>int main() { enum /*
- MyBatis添加记录后获取主键ID,这是一个很常见的需求。这个需求有分为两种情况:(1)添加单条记录时获取主键值;(2)获取批量添加记录时
- 在一些允许用户自定义栏目顺序的app(如:凤凰新闻、网易云音乐等),我们可以方便地拖拽列表项来完成列表的重新排序,进而完成对栏目顺序的重排。
- 本文实例讲述了Java擦除和转换。分享给大家供大家参考,具体如下:一 点睛在严格的泛型代码里,带泛型声明的类总应该带着类型参数。
- * 与过滤器在讲Spring boot之前,我们先了解一下过滤器和 * 。这两者在功能方面很类似,但是在具体技术实现方面,差距还是比较大的
- 目录前言:对文章出现的一些名词进行解释一、插入排序1.基本思想2.直接插入排序3.希尔排序(缩小增量排序)二、选择排序1.基本思想2.直接选
- 日期格式处理在控制器中使用对象接收数据前端:<form action="test/add" method=&quo
- 一、日志工具功能封装Debug类,需要实现功能:1.控制所有日志是否打印;2.除了Log,Warning,Error外,给更多日志种类(不同