资料来源:网络整理
时间:2023/2/14 0:52:37 共计:3619 浏览
springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭建好了,这里不再赘述,下面就开始吧!
ssm框架整合详情请看:http://www.tpyyes.com/a/javaweb/2016/1103/23.html
1.首先我们创建一个测试用的jsp页面,代码如下。
[html] view plain
copy
-
<%@ page language="java" contentType="text/html; charset=utf-8"
-
pageEncoding="utf-8"%>
-
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-
<html>
-
<head>
-
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-
<title>文件上传下载</title>
-
</head>
-
<body>
-
<form action="http://localhost:8080/uploadDemo/rest/file/upload" method="post" enctype="multipart/form-data">
-
选择文件:<input type="file" name="file" width="120px">
-
<input type="submit" value="上传">
-
</form>
-
<hr>
-
<form action="http://localhost:8080/uploadDemo/rest/file/down" method="get">
-
<input type="submit" value="下载">
-
</form>
-
</body>
-
</html>
2.在我们的maven项目的pom.xml文件中添加fileupload文件上传下载jar包,不然后面的操作可能会报错,如下。
[html] view plain
copy
-
-
<dependency>
-
<groupId>commons-fileupload</groupId>
-
<artifactId>commons-fileupload</artifactId>
-
<version>1.3</version>
-
</dependency>
3.在spring的servlet视图解析器下面定义CommonsMultipartResolver文件解析器,就是加入这个的时候运行项目,如果没有fileuload相关的jar包就会报错。
[html] view plain
copy
-
-
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
-
-
<property name="defaultEncoding" value="utf-8"></property>
-
-
<property name="maxUploadSize" value="5242440"></property>
-
</bean>
4.在controller层写上springmvc上传下载的代码,如下。
[html] view plain
copy
-
package com.baidu;
-
@RequestMapping("file")
-
@Controller
-
public class FileController {
-
/**
-
* 文件上传功能
-
* @param file
-
* @return
-
* @throws IOException
-
*/
-
@RequestMapping(value="/upload",method=RequestMethod.POST)
-
@ResponseBody
-
public String upload(MultipartFile file,HttpServletRequest request) throws IOException{
-
String path = request.getSession().getServletContext().getRealPath("upload");
-
String fileName = file.getOriginalFilename();
-
File dir = new File(path,fileName);
-
if(!dir.exists()){
-
dir.mkdirs();
-
}
-
//MultipartFile自带的解析方法
-
file.transferTo(dir);
-
return "ok!";
-
}
-
-
/**
-
* 文件下载功能
-
* @param request
-
* @param response
-
* @throws Exception
-
*/
-
@RequestMapping("/down")
-
public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{
-
//模拟文件,myfile.txt为需要下载的文件
-
String fileName = request.getSession().getServletContext().getRealPath("upload")+"/myfile.txt";
-
//获取输入流
-
InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
-
//假如以中文名下载的话
-
String filename = "下载文件.txt";
-
//转码,免得文件名中文乱码
-
filename = URLEncoder.encode(filename,"UTF-8");
-
//设置文件下载头
-
response.addHeader("Content-Disposition", "attachment;filename=" + filename);
-
//1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
-
response.setContentType("multipart/form-data");
-
BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
-
int len = 0;
-
while((len = bis.read()) != -1){
-
out.write(len);
-
out.flush();
-
}
-
out.close();
-
}
-
}
springmvc上传下载很方便,代码直接复制使用。
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。