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. ...
随机推荐
- JOIN和UNION的区别
join 是两张表根据条件相同的部分合并生成一个记录集. SELECT Websites.id, Websites.name, access_log.count, access_log.dateFRO ...
- 测试常用的linux命令
一.系统 1.halt: 关机 poweroff: 关机 2.reboot: 重启 二.处理目录和文件的命令 1.ll: 显示文件详细信息 ls: 显示文件目 ...
- freemarker特殊字符输出
期望输出: #{fefefefwewrerwerwrrrre}${fffqqqwwwwwwwwwwwwwwww} 但是以上解析ftl时候会报错!!!!!!!!!!!! 解决办法: 方法1:使用${r& ...
- python之操作excel:xlrd、xlwt、xlutiles、枚举函数enumerate()
一.读excel: xlrd-----只能读.不能写 import xlrd book=xlrd.open_workbook(r'E:\BestTest\内容\名单.xlsx') #打开excel s ...
- python3写冒泡排序
1.概念理解: 冒泡排序:可以简单的理解为是列表中相近的元素,两两比较,小的在前面.最多需要len()-1次排序. 2.例子:a=[11,7,4,56,35,0] 3.代码实现: 4.输出结果: 第1 ...
- JS常用字符串处理方法应用总结
这篇文章主要总结了JS常用字符串的处理方法,需要的朋友可以参考下 1.indexOf()方法,从前往后查找字符串位置,大小写敏感,从0开始计数.同理,lastIndexOf() 方法从后往前,两个 ...
- mongdb查询数据并且返回数据条数
var totall; var a = db.db("Magiccat").collection("jishi_content").find().count({ ...
- git 知识(转)
转自:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html Workspace:工作区 Index / Stage:暂存区 Repos ...
- while循环处理列表和字典
一.在列表之间移动元素 假设有一个列表,里面存放的是网站新注册但没有验证的用户,验证这些用户后,如何将它们移动到另一个已验证用户列表中呢? 其中一种方法是使用while循环,在验证用户的同时,将其从未 ...
- Linux 配置yum本地安装源
cat /etc/system-release Red Hat Enterprise Linux Server release 7.0 (Maipo) 1 使用本地源得先挂载ISO光盘文件 # 可以创 ...