SpringMVC——实现文件上传下载
来源:互联网 发布:西安行知中学张淑珍 编辑:程序博客网 时间:2024/06/06 16:59
参考:
http://blog.csdn.net/u012706811/article/details/51059419
http://blog.csdn.net/u012660464/article/details/53434331
一、文件上传
1.引入依赖包
在pom.xml文件中添加如下内容,引入 commons-fileupload 和 commons-io 两个包。
<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.3</version></dependency>
2.spring-mvc.xml
<!--文件上传--><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--最大上传大小(字节)--> <property name="maxUploadSize" value="1048576" /></bean>
3.fileUpload.jsp
form中加入 enctype=”multipart/form-data” 属性,表示将文件一二进制流传输,否则报错。
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>fileUpload —— 单个文件</title></head><body><h1 align = "center">文件上传</h1><form action = "${website}FileController" enctype="multipart/form-data" method = "post"> 选择文件:<input type="file" name = "file"> <input type="submit" value = "提交"></form></body></html>
4.Success.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head> <title>success</title></head><body><h1 align="center">Success!</h1></body></html>
5.index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><body><h2 align="center">Hello World!</h2><a href="${website}admin/listUser">进入用户管理界面</a><a href="${website}file/fileUpload">上传单个文件</a><a href="${website}file/multiFileUpload">上传多个文件</a><%--<a href="${website}file/fileDownload">下载文件</a>--%><a href="${website}file/download">下载指定文件</a></body></html>
6.FileController
/** * 去文件上传页面 * * @return */ @RequestMapping(value = "fileUpload", method = RequestMethod.GET) public String toFileUpload(){ return "/file/fileUpload"; } /** * 单个文件上传 * * @param file * @return */ @RequestMapping(value = "upload", method = RequestMethod.POST) public String fileUpload(@RequestParam("file")MultipartFile file){ if (!file.isEmpty()){ try { //存入F:\temp目录下 FileUtils.copyInputStreamToFile(file.getInputStream(), new File("F:\\temp", System.currentTimeMillis()+ file.getOriginalFilename())); } catch (IOException e){ e.printStackTrace(); } } //上传成功,跳转至success页面 return "file/success"; }
7.多个文件上传
/** * 去多个文件上传页面 * * @return */ @RequestMapping(value = "multiFileUpload", method = RequestMethod.GET) public String toMultiFileUpload(){ return "/file/multiFileUpload"; } /** * 多个文件上传 * * @param multiRequest * @return */ @RequestMapping(value = "multiUpload", method = RequestMethod.POST) public String multiFileUpload(MultipartHttpServletRequest multiRequest) throws IOException { Iterator<String> filesNames = multiRequest.getFileNames(); //获得所有的文件名 while(filesNames.hasNext()){ //迭代,对单个文件进行操作 String fileName =filesNames.next(); MultipartFile file = multiRequest.getFile(fileName); if(!file.isEmpty()){ FileUtils.copyInputStreamToFile(file.getInputStream(), new File("F:\\temp", System.currentTimeMillis()+ file.getOriginalFilename())); } } //上传成功,跳转至success页面 return "file/success"; }
二、文件下载
1.index.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html><body><h2 align="center">Hello World!</h2><a href="${website}admin/listUser">进入用户管理界面</a><a href="${website}file/fileUpload">上传文件</a><%--<a href="${website}file/fileDownload">下载文件</a>--%><a href="${website}file/download">下载指定文件</a></body></html>
2.FileController
现在实现的功能是点击“下载指定文件”则下载在controller中指定好的文件,还没有实现把上传的文件传入数据库,也没实现下载数据库中要存的文件,日后慢慢改进。
/** * 指定文件下载 * * @return * @throws IOException */ @RequestMapping(value = "download",produces = "application/octet-stream;charset=UTF-8") public ResponseEntity<byte[]> download() throws IOException {// 指定文件,必须是绝对路径 File file = new File("F:\\temp\\1513489657107psb.jpg");// 下载浏览器响应的那个文件名 String dfileName = "1.jpg";// 下面开始设置HttpHeaders,使得浏览器响应下载 HttpHeaders headers = new HttpHeaders();// 设置响应方式 headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);// 设置响应文件 headers.setContentDispositionFormData("attachment", dfileName);// 把文件以二进制形式写回 return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file), headers, HttpStatus.CREATED); }
效果
阅读全文
0 0
- SpringMVC——实现文件上传下载
- springmvc实现文件上传下载
- SpringMVC实现上传下载文件
- SpringMVC实现文件上传下载
- 运用springmvc实现文件上传下载
- springMVC实现文件的上传下载
- 文件上传下载—struts2实现
- SpringMVC下Excel文件的上传下载实现
- 五.SpringMVC 实现文件上传下载、国际化
- SpringMVC——返回JSON数据&&文件上传下载
- 文件上传下载—servlet API实现
- 文件上传下载—servlet API实现
- springmvc文件上传下载
- springmvc文件上传下载
- SpringMVC 文件上传下载
- springmvc文件上传下载
- SpringMVC上传下载文件
- SpringMVC文件上传下载
- vue项目添加Jquery
- canvas(柱状图)
- mysql的MID函数
- Javascript走动的时钟
- 想要无所不能的女秘书,用Office 365啊
- SpringMVC——实现文件上传下载
- 字符串string和StringBuilder
- 利用scrapyd管理scrapy的多个爬虫
- solr使用总结
- Nepire的校OJ入门题解—蓝桥选拔篇(五)
- Linux部署项目和常用命令
- [比赛记录] 主流机器学习模型模板代码+经验分享[xgb, lgb, Keras, LR]
- Image工具类
- 物理知识(二)