spring mvc 选中多文件同时上传(利用input元素的multiple属性)
原文:http://m.blog.csdn.net/article/details?id=51351388
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="upload.do" method="post" enctype="multipart/form-data">
<p>一个选择上传的文件</p>
<input type="text" name="reck" value=""/><br/>
<!-- 可以选取一张或者多种图片上传 -->
<input type="file" name="files" multiple/><br/>
<!-- 每个input元素只能选中一个文件 -->
<!-- <input type="file" name="files" /><br/>
<input type="file" name="files" /><br/>
<input type="file" name="files" /><br/> -->
<input type="submit" value="Submit"/>
</form>
</body>
</html>
spring中配置:
<!-- ========文件上传======= -->
<!--200*1024*1024即200M resolveLazily属性启用是为了推迟文件解析,以便捕获文件大小异常 -->
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="209715200" />
<property name="defaultEncoding" value="UTF-8" />
<property name="resolveLazily" value="true" />
</bean>
java代码:
package org.wxy.demo.action; import java.io.File;
import java.io.IOException; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.multipart.MultipartFile;
/**
*
* <一句话功能简述><p>
* MultipartFile类常用的一些方法:
* String getContentType() //获取文件MIME类型
* InputStream getInputStream() //后去文件流
* String getName() //获取表单中文件组件的名字
* String getOriginalFilename() //获取上传文件的原名
* long getSize() //获取文件的字节大小,单位byte
* boolean isEmpty() //是否为空
* void transferTo(File dest) //保存到一个目标文件中。
*
* @author wangxy
* @param <E>
*
* @see [相关类/方法]
* @since [产品/模块版本]
*/
@Controller
public class FileUpDownCtrl<E> { /**
* 上传文件
* @param file
* @return
*/
@RequestMapping(value="/upload.do")
public String fileUpload(@RequestParam("files") MultipartFile[] files,HttpServletRequest request) {
String rect = (String) request.getAttribute("rect");
System.out.println(rect); //判断file数组不能为空并且长度大于0
if(files!=null && files.length>0){
//循环获取file数组中得文件
for(int i = 0;i<files.length;i++){
MultipartFile file = files[i]; try {
//获取存取路径
String filePath = request.getSession().getServletContext().getRealPath("/") + "upload/" + file.getOriginalFilename();
// 转存文件
file.transferTo(new File(filePath));
} catch (IOException e) {
e.printStackTrace();
}
}
// 重定向
return "redirect:/list.do";
}
// 重定向
return "redirect:/fail.html";
} @RequestMapping(value="/list.do")
@ResponseBody
public String list(HttpServletRequest request,HttpServletResponse response) {
String filePath = request.getSession().getServletContext().getRealPath("/") + "upload";
File[] files = new File(filePath).listFiles(); StringBuilder fileNames = new StringBuilder();
for(File f : files){
System.out.println(f.getName());
fileNames.append(f.getName()+"\n");
}
return fileNames.toString();
} /**
* 配置了 <property name="resolveLazily" value="true" />
* 才有效
* @author wangxy
*
* @param ex
*/
@ExceptionHandler
public void doExcepiton(Exception ex){
if(ex instanceof MaxUploadSizeExceededException){
System.out.println("文件太大");
}
} }
spring mvc 选中多文件同时上传(利用input元素的multiple属性)的更多相关文章
- spring mvc ajax异步文件的上传和普通文件上传
表单提交方式文件上传和ajax异步文件上传 一:首先是我在spring mvc下的表单提交方式上传 ssm的包配置我就不一一详细列出来了,但是上传的包我还是列出来 这一段我也不知道怎么给大家讲解就是直 ...
- ASP.NET MVC实现Excel文件的上传下载
在应用系统开发当中,文件的上传和下载是非常普遍的需求.在基于.NET的C/S架构的项目开发当中,有多种方案可以实现文件的上传和下载(httpwebrequest.webclient等),而且多采用异步 ...
- ASP.NET MVC WebAPI实现文件批量上传
工作中学习,学习中记录~~~~~~ 最下面附上demo 任务需求:需要做一个apI接口让C#的程序调用实现批量文件的上传. 难度: 没有做过通过API上传文件的...之前做过网站前后台上传. 首先当然 ...
- 在MVC中实现文件的上传
@using (Html.BeginForm("daoru", "Excel", FormMethod.Post, new { enctype = " ...
- asp.net mvc+webuploader大文件分片上传
首先是前端: var GUID = WebUploader.Base.guid();//一个GUID uploadereditsVideo = WebUploader.create({ // swf文 ...
- Spring MVC 实现文件的上传和下载
前些天一位江苏经贸的学弟跟我留言问了我这样一个问题:“用什么技术来实现一般网页上文件的上传和下载?是框架还是Java中的IO流”.我回复他说:“使用Spring MVC框架可以做到这一点,因为Spri ...
- 文件的上传和下载--SpringMVC
文件的上传和下载是项目开发中最常用的功能,例如图片的上传和下载.邮件附件的上传和下载等. 接下来,将对Spring MVC环境中文件的上传和下载进行详细的讲解. 一.文件上传 多数文件上传都是通过表单 ...
- Spring Boot 2.x基础教程:多个文件的上传
昨天,我们介绍了如何在Spring Boot中实现文件的上传.有读者问:那么如果有多个文件要同时上传呢?这就马上奉上,当碰到多个文件要同时上传的处理方法. 动手试试 本文的动手环节将基于Spring ...
- Spring MVC 实现文件的上传和下载 (八)
完整的项目案例: springmvc.zip 目录 SpringMVC 中,文件的上传,是通过 MultipartResolver 实现的. 所以,如果要实现文件的上传,只要在 spring-mvc. ...
随机推荐
- 样式化复选框(Styling Checkbox)
原理:https://www.tuicool.com/articles/y67jee 表现:http://www.freejs.net/demo/381/index.html https://www. ...
- 数组、list排序
//数字排序 int[] intArray = new int[] {4, 1, 3, -23}; Arrays.sort(intArray); 输出: [-23, 1, 3, 4] //字符串排序, ...
- node.js中使用Redis
服务端: 启动Redis服务: redis-server 客户端: 1.安装Redis npm install redis --save 2.redisTest.js文件 //引入red ...
- C++中:点运算符和箭头运算符的区别
点运算符用于获取对象成员: 箭头运算符用于获取指针指向的对象的成员: 例如: std::string s1 = "string"; std::string *p = &s1 ...
- 使用 Pytorch 实现 skip-gram 的 word2vec
转载请注明 AIQ - 最专业的机器学习大数据社区 http://www.6aiq.com AIQ 机器学习大数据 知乎专栏 点击关注 链接地址: https://github.com/lonePa ...
- springmvc下载那些事
文件的上传下载一般在项目中还是非常实用的,此处专门整理一下文件的下载,至于文件的上传实现将在后续中补上.文件的下载多用于模板文件的下载,这在项目中用的还是挺多的.今天用到了就整理出来了,以供搬运工们借 ...
- 下划线hover下动态出现技巧
酷炫的动画效果往往更能吸引眼球,下面我将分享纯CSS中,hover的时候出现下划线动态飞入的技巧. 1.下划线从左侧飞入: div::before{ content:""; wid ...
- linux php安装ODBC扩展
进入php源码安装目录的ext/pdo_odbc $ sudo /data/apps/php/bin/phpize $ ./configure --with-php-config=/data/apps ...
- ubuntu14.04 RockMongo的配置
安装php5 安装php5 sudo apt-get install php5 让Apache支持php sudo apt-get install libapache2-mod-ph ...
- Android 图片设置圆角 方法之二
Android中经常会遇到对图片进行二次处理,例如加圆角,或者显示圆形图片.接下来我们再介绍一种方法. 首先, 自定义ImageView: android:id="@+id/iv" ...