springMVC上传文件和文件下载
springMVC.xml文件
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 上传文件大小上限,单位为字节(10MB) -->
<property name="maxUploadSize">
<value>10485760</value>
</property>
<!-- 请求的编码格式,必须和jSP的pageEncoding属性一致,以便正确读取表单的内容,默认为ISO-8859-1 -->
<property name="defaultEncoding">
<value>UTF-8</value>
</property>
</bean>
//需要导入fileupload包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
1) 上传单个文件
页面:
<form action="${pageContext.request.contextPath}/upload/uploadFile" method="post" enctype="multipart/form-data">
<input type="file" name="imgFile"/>
<input type="submit" value="提交">
</form>
controller
@RequestMapping(value="uploadFile")
public String uploadFile(MultipartFile imgFile, HttpSession session) throws IllegalStateException, IOException{
if(imgFile.getSize()==0){
//没有上传文件
return error;
}
//获取文件名称: temp.jpg
String oFilename = imgFile.getOriginalFilename();
String path = session.getServletContext().getRealPath("/productImages"); //上传文件保存目录 //设置随机名称,防止文件名称重名
String uuidFilename = UUID.randomUUID().toString().replace("-", "") + oFilename.substring(oFilename.lastIndexOf(".")); imgFile.transferTo(new File(path, uuidFilename)); return "success";
}
2) 上传多个文件
页面:
<form action="${pageContext.request.contextPath}/upload/uploadFiles" method="post" enctype="multipart/form-data">
<input type="file" name="imgFiles"/>
<input type="file" name="imgFiles"/>
<input type="file" name="imgFiles"/>
<input type="submit" value="提交">
</form>
UploadVo
import java.util.List;
import org.springframework.web.multipart.MultipartFile;
public class UploadVo { private List<MultipartFile> imgFiles; public List<MultipartFile> getImgFiles() {
return imgFiles;
}
public void setImgFiles(List<MultipartFile> imgFiles) {
this.imgFiles = imgFiles;
} }
controller
@RequestMapping(value="uploadFiles")
public String uploadFiles(UploadVo vo) throws IllegalStateException, IOException{
//获取上传图片文件集合
List<MultipartFile> imgFiles = vo.getImgFiles(); for (MultipartFile multipartFile : imgFiles) { if(multipartFile.getSize() <= 0 ){//文件大小为0,跳过
continue;
}
//获取文件名称
String filename = multipartFile.getOriginalFilename();
//生成随机文件名
String uuidFilename = UUID.randomUUID().toString().replace("-", "")+filename.substring(filename.lastIndexOf("."));
//将文件写入磁盘中
multipartFile.transferTo(new File("d:/" + uuidFilename));
}
return "test";
}
文件下载
页面:
<a href="${pageContext.request.contextPath}/upload/download?filename=文件12.jpg">下载文件</a>
controller:
//下载文件
@RequestMapping(value="/download")
public ResponseEntity<byte[]> download(@RequestParam("filename") String filename) throws IOException{ //下载显示的文件名,解决中文名称乱码问题
String downloadFilename = new String(filename.getBytes("iso8859-1"), "utf-8");
//创建文件
File file = new File("d:/", downloadFilename); if(!file.exists()){
//文件不存在
return null;
} //创建请求头
HttpHeaders headers = new HttpHeaders(); //通知浏览器以attachment(下载方式)打开图片
headers.setContentDispositionFormData("attachment", filename); //application/octet-stream : 二进制流数据(最常见的文件下载)
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM); //返回ResponseEntity<byte[]>
return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED);
}
springMVC上传文件和文件下载的更多相关文章
- springmvc上传文件,抄别人的
SpringMVC中的文件上传 分类: SpringMVC 2012-05-17 12:55 26426人阅读 评论(13) 收藏 举报 stringuserinputclassencoding 这是 ...
- 2. SpringMVC 上传文件操作
1.创建java web项目:SpringMVCUploadDownFile 2.在项目的WebRoot下的WEB-INF的lib包下添加如下jar文件 com.springsource.com.mc ...
- 使用springMVC上传文件
control层实现功能: @RequestMapping(value="upload2") public String upLoad2(HttpServletRequest re ...
- SpringMVC上传文件(图片)并保存到本地
SpringMVC上传文件(图片)并保存到本地 小记一波~ 基本的MVC配置就不展示了,这里给出核心代码 在spring-mvc的配置文件中写入如下配置 <bean id="multi ...
- SpringMVC上传文件总结
如果是maven项目 需要在pom.xml文件里面引入下面两个jar包 <dependency> <groupId>commons-fileupload</groupId ...
- SpringMVC 上传文件 MultipartFile 转为 File
在使用 SpringMVC 上传文件时,接收到的文件格式为 MultipartFile,但是在很多场景下使用都需要File格式的文件,记录下以便日后使用. 以下mFile为MultipartFile文 ...
- springmvc 上传文件时的错误
使用springmvc上传文件一直失败,文件参数一直为null, 原来是配置文件没写成功. <bean id="multipartResolver" class=" ...
- SpringMVC上传文件的三种方式(转)
直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...
- SpringMVC上传文件的三种方式
直接上代码吧,大伙一看便知 这时:commonsmultipartresolver 的源码,可以研究一下 http://www.verysource.com/code/2337329_1/common ...
随机推荐
- 【剑指Offer面试编程题】题目1368:二叉树中和为某一值的路径--九度OJ
题目描述: 输入一颗二叉树和一个整数,打印出二叉树中结点值的和为输入整数的所有路径.路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径. 输入: 每个测试案例包括n+1行: 第一行为2 ...
- docker-构建建tomcat镜像并启动容器
1.下载一个tomcat8,解压好改名为tomcat并配置端口为80,删除webapps下的默认的应用,修改tomcat/bin目录下脚本的权限,chmod +x *.sh 2.路径一般放在/usr/ ...
- burpsuite下载安装及基本配置
jdk安装 根据电脑安装对应jdk版本 点此下载jdk 下载完成得到如下exe文件 配置Java环境变量 计算机右键-->属性-->高级系统设置-->环境变量 点击环境变量--> ...
- 新闻网大数据实时分析可视化系统项目——7、Kafka分布式集群部署
Kafka是由LinkedIn开发的一个分布式的消息系统,使用Scala编写,它以可水平扩展和高吞吐率而被广泛使用.目前越来越多的开源分布式处理系统如Cloudera.Apache Storm.Spa ...
- Mac的Terminal中无法使用mvim解决方案
对于每个人来说,都会有特别喜欢的编辑器.对于很多热爱Unix/Linux的人来说,Vim/vi肯定是很熟悉的“编辑利器”了. 当然,对于Mac用户来说,肯定也不乏对Vim狂热的人.庆幸的是,Vim对M ...
- jquery使用css函数设置背景色无效解决办法
外部的css样式为: #imageArea{ width: 200px; height: 300px; background-color: #eee !important; } 通过 以下代码来修改其 ...
- Day4-B-最短路径问题 HDU3790
给你n个点,m条无向边,每条边都有长度d和花费p,给你起点s终点t,要求输出起点到终点的最短距离及其花费,如果最短距离有多条路线,则输出花费最少的. Input输入n,m,点的编号是1~n,然后是m行 ...
- 073、Java面向对象之利用构造方法为属性赋值
01.代码如下: package TIANPAN; class Book { // 定义一个新的类 private String title; // 书的名字 private double price ...
- Html5使用audio播放音乐
html代码 <audio id="myaudio" src="http://ws.stream.qqmusic.qq.com/C100003R74Cn0JR4O ...
- Docker registry自签名证书
权威Registry 获取安全证书有两个办法:互联网认证的CA处获取.自建CA自己给自己签名. 1.从认证CA处获取签名证书,大多数是需要付出一定费用的,近些年也有认证CA提供免费证书,例如Let’s ...