springmvc文件上传/下载
时间:2022-06-17
本文章向大家介绍springmvc文件上传/下载,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
文件上传
1,配置文件上传解析器
在springmvc-servlet.xml中配置
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为1MB -->
<property name="maxUploadSize">
<value>1048576</value>
</property>
</bean>
需要导入fileupload依赖包 io的包 com.springsource.org.apache.commons.fileupload-1.2.0.jar com.springsource.org.apache.commons.io-1.4.0.jar
2,编写前端页面代码,使用form表单上传
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/11/7
Time: 15:43
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>文件上传</title>
</head>
<body>
<form action="uploadFile" method="post" enctype="multipart/form-data">
<input type="file" name="file"><br>
<input type="submit" value="提交">
</form>
</body>
</html>
3,controller里面的代码,
一定使用MultipartFile file作为形参,能将前端传入的文件自动注入到该参数中。
@RequestMapping("/uploadFile")
public String uploadFile(MultipartFile file){
System.out.println(file.getContentType());//获取文件类型
System.out.println(file.getSize());//获取文件大小
System.out.println(file.getOriginalFilename());//获取文件原始名称
System.out.println(file.getName());//input的name
//把文件保存在指定路径(桌面)
try {
File desFile = new File("C:/Users/Administrator/Desktop/"+file.getOriginalFilename());
FileUtils.copyInputStreamToFile(file.getInputStream(),desFile);
} catch (IOException e) {
e.printStackTrace();
}
return "index";
}
4,使用ajax上传图片,动态显示在傍边的img标签中
ajax的特点:异步请求,局部刷新 前端加上jquary代码
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2018/11/9
Time: 19:37
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
<script type="text/javascript" src="jq.js"></script>
<script type="text/javascript">
$(function(){
$("#file").change(function(){
var data = new FormData($("#form")[0]);
$.ajax({
type:"post",
url:"uploadFile1",
data:data,
cache:false,
processData:false,
contentType:false,
beforeSend:function(){
},
success:function(msg){
$("img").attr("src",msg);
},
error:function(){
}
});
});
});
</script>
</head>
<body>
<form method="post" enctype="multipart/form-data" id="form">
<input type="file" name="file" id="file"><img style="width: 100px;height: 100px"><br>
</form>
</body>
</html>
controller代码
@RequestMapping("/uploadFile1")
@ResponseBody//局部刷新
public String uploadFile1(MultipartFile file ,HttpServletRequest request){
//把文件保存在指定路径
String path = request.getServletContext().getRealPath("imgs");
File destFile = new File(path+"/"+file.getOriginalFilename());
try {
InputStream in = file.getInputStream();
FileUtils.copyInputStreamToFile(in,destFile);
} catch (IOException e) {
e.printStackTrace();
}
String msg = "imgs/"+file.getOriginalFilename();
return msg;
}
5,文件下载
@RequestMapping("/download")
@ResponseBody
public void download(HttpServletResponse response) throws Exception{
response.setHeader("content-Disposition","attachment;filename = a.jpg");
OutputStream out = response.getOutputStream();
FileInputStream in = new FileInputStream("D:\file\1.jpg");
IOUtils.copy(in,out);
in.close();
out.close();
}
直接访问/download就能下载文件,不过现在都不用这种方法下载了,大都使用html5的新特性下载文件。
- 程序员面试50题(4)—把字符串转换成整数[算法]
- 程序员面试50题(3)—翻转句子中单词的顺序[算法]
- H5动画开发快车道
- Open vSwith模拟网关实现不同子网的互通
- 总结了一些指针易出错的常见问题(二)
- 史上最清晰的红黑树讲解(上)
- C++之new/delete/malloc/free详解
- 验证 结构体指针与自增运算符
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失下篇
- ONOS1.3.0集群实验
- Spring Boot下的TDD(测试驱动开发)
- MySQL的索引是什么?怎么优化?
- C语言之函数
- ElasticSearch搜索引擎在SpringBoot中的实践
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释