首先肯定是支持选择上传文件的前台:

[html] view plaincopy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>hello</title>
  8. </head>
  9. <body>
  10. <div>
  11. <form  enctype='multipart/form-data'  method="post" action="upload.do">
  12. <input type="file" name="uploadFile" />
  13. <button>提交</button>
  14. </form>
  15. </div>
  16. </body>
  17. </html>

调用后台的upload.do的请求

spring mvc 只需在请求前注解@RequstMapping("your request name")便可对应

[java] view plaincopy
  1. package hope.cs.zhku.controller;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.multipart.MultipartFile;
  11. import org.springframework.web.multipart.MultipartHttpServletRequest;
  12. /******************************************************************************
  13. * 名称:UserBasicEditorController.java</br>
  14. * 日期:2011-8-15</br>
  15. * 功能:</br>
  16. * 编写:Willson Huang</br>
  17. * 复核:</br>
  18. * 其他:</br>
  19. * 历史:(说明,修改人,时间)</br>
  20. * 1.create ,Willson Huang ,2011-8-15
  21. *****************************************************************************/
  22. @Controller
  23. public class UploadController {
  24. @RequestMapping("upload.do")
  25. public String upload(HttpServletRequest request,HttpServletResponse response ){
  26. MultipartHttpServletRequest multipartHttpservletRequest=(MultipartHttpServletRequest) request;
  27. MultipartFile multipartFile = multipartHttpservletRequest.getFile("uploadFile");
  28. String originalFileName=multipartFile.getOriginalFilename();
  29. File file=new File("file");
  30. if(!file.exists()){
  31. file.mkdir();
  32. }
  33. System.out.println(file.getAbsolutePath());
  34. try {
  35. FileOutputStream fileOutputStream=new FileOutputStream(file+"/uploadFile"+originalFileName.substring(originalFileName.lastIndexOf('.'), originalFileName.length()));
  36. fileOutputStream.write(multipartFile.getBytes());
  37. fileOutputStream.flush();
  38. fileOutputStream.close();
  39. } catch (FileNotFoundException e) {
  40. // TODO Auto-generated catch block
  41. e.printStackTrace();
  42. return "error";
  43. } catch (IOException e) {
  44. // TODO Auto-generated catch block
  45. e.printStackTrace();
  46. return "error";
  47. }
  48. return "uploadSuccess";
  49. }
  50. }

二、文件下载

实现是前台:

[html] view plaincopy
  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <script type="text/javascript" src="js/jquery-1.4.4.min.js"></script>
  8. <title>Insert title here</title>
  9. </head>
  10. <body>
  11. <input id='fileName' type="text" name="fileName"/>
  12. <a href="download.do" target="blank"><button>下载</button></a>
  13. </body>
  14. <script type="text/javascript">
  15. $(function(){
  16. $('a').click(function(){
  17. var link=this.href+'?'+'fileName='+$('#fileName').val();
  18. window.open(link);
  19. return false;
  20. });
  21. });
  22. </script>
  23. </html>

前台填写要下载的文件,后台从文件夹里查找,如果没有文件则返回错误文件,否则则提供任意文件类型的下载(填写文件时必须写后缀)

[java] view plaincopy
  1. package hope.cs.zhku.controller;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.OutputStream;
  8. import javax.servlet.http.HttpServletResponse;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.web.bind.annotation.RequestMapping;
  11. /******************************************************************************
  12. * 名称:UserBasicEditorController.java</br>
  13. * 日期:2011-8-15</br>
  14. * 功能:</br>
  15. * 编写:Willson Huang</br>
  16. * 复核:</br>
  17. * 其他:</br>
  18. * 历史:(说明,修改人,时间)</br>
  19. * 1.create ,Willson Huang ,2011-8-15
  20. *****************************************************************************/
  21. @Controller
  22. public class DownloadController {
  23. @RequestMapping("download.do")
  24. public void downloadFile(String fileName,HttpServletResponse response){
  25. response.setCharacterEncoding("utf-8");
  26. response.setContentType("multipart/form-data");
  27. response.setHeader("Content-Disposition", "attachment;fileName="+fileName);
  28. try {
  29. File file=new File(fileName);
  30. System.out.println(file.getAbsolutePath());
  31. InputStream inputStream=new FileInputStream("file/"+file);
  32. OutputStream os=response.getOutputStream();
  33. byte[] b=new byte[1024];
  34. int length;
  35. while((length=inputStream.read(b))>0){
  36. os.write(b,0,length);
  37. }
  38. inputStream.close();
  39. } catch (FileNotFoundException e) {
  40. e.printStackTrace();
  41. } catch (IOException e) {
  42. e.printStackTrace();
  43. }
  44. }
  45. }

spring mvc 文件上传、下载功能相关推荐

  1. Spring MVC文件上传下载实例

    工程目录: 导入jar: controllers.FileControler.java package controllers;import java.io.File; import java.io. ...

  2. 项目_功能模块_基于Spring Boot的文件上传下载功能的设计与实现

    文章目录 基于Spring Boot的文件上传下载功能模块的设计与实现 1.前言 2.技术栈 3.关键源码 4.实现效果 4.1.登录 4.2.文件列表 4.3.上传文件测试 4.3.1.测试图片 4 ...

  3. Spring MVC文件上传示例教程 - 单个和多个文件

    Spring MVC文件上传示例教程 - 单个和多个文件 文件上传是任何Web应用程序中非常常见的任务.我们之前已经看过如何在Servlet和Struts2文件上传中上传文件.今天我们将学习Sprin ...

  4. spring mvc文件上传小例子

    spring mvc文件上传小例子 1.jsp页面 <%@page contentType="text/html;charset=UTF-8"%> <%@page ...

  5. 教你如何实现c#文件上传下载功能

    简单介绍一下c#文件上传下载功能实现. NuGet 安装SqlSugar Model文件下新建 DbContext 类 public class DbContext {public DbContext ...

  6. JavaWeb实现文件上传下载功能实例解析

    转:http://www.cnblogs.com/xdp-gacl/p/4200090.html JavaWeb实现文件上传下载功能实例解析 在Web应用系统开发中,文件上传和下载功能是非常常用的功能 ...

  7. java文件流 m.jb51.net_FasfDFS整合Java实现文件上传下载功能实例详解

    今天使用Java代码实现文件的上传和下载.对此作者提供了Java API支持,下载fastdfs-client-java将源码添加到项目中.或者在Maven项目pom.xml文件中添加依赖 org.c ...

  8. Spring MVC 文件上传 文件下载

    索引: 目录索引 参看代码 GitHub: pom.xml WebConfig.java index.jsp upload.jsp FileUploadController.java Files_Ut ...

  9. spring mvc文件上传与下载

    基于spring mvc注解: (1)导入jar包:ant.jar.commons-fileupload.jar.connom-io.jar. (2)在spring-mvc.xml中的配置 <! ...

  10. Springmvc,Spring MVC文件上传

    Springmvc文件上传: 1.代码截图如下: 2.UploadController.java: package cn.csdn.controller;import java.io.File;imp ...

最新文章

  1. Leangoo敏捷项目管理软件 6.3.2卡片关联支持链接
  2. 不确定大小的数组_原来数组是容器喔
  3. 风险管理6个过程及相关重点
  4. java sleep join_Java多線程之sleep,wait,join和yield關鍵字
  5. boost::process::shell相关的测试程序
  6. 网络资产管理系统_固定资产管理系统网络版的各种语言翻译
  7. MyBatis+Oracle实现主键自增长
  8. Kubernetes知识体系-从入门到精通
  9. IIS 6.0 SSL证书安装
  10. Anconda之常用命令汇总
  11. 【机器学习系列】GMM第一讲:两个角度认识高斯混合模型
  12. bilibili开源弹幕库UML类图
  13. cpe动态ip,做端口映射方案
  14. 关于字体的px和pt
  15. 深度linux已连网但无法访问互联网,wifi已连接但无法访问互联网怎么办?
  16. Swift游戏实战-跑酷熊猫 02 创建熊猫类
  17. vtkPolyData获取bounds点坐标
  18. 小白一起学Android studio 创建项目
  19. plc实验报告流程图_plc实验报告
  20. 用 Jupyter Notebook 爬取微博图片保存本地!

热门文章

  1. Oracle数据库闪回
  2. 集群出现块丢失,块找回,以及相关底层原理,fsck等
  3. Kafka消费者启动报错: Not authorized to access group
  4. 前端面试基本---this 指向(call、apply、bind用法及区别详解)
  5. 从零开始搭建公司域环境(二):服务器安装域控并实现客户端加域登陆
  6. 树莓派CM4官方底板的双路摄像头使用
  7. 改版后的CSDN如何更换皮肤
  8. GO string 转map_go 学习笔记之数组还是切片都没什么不一样
  9. 有赞裁员1500人?说说有赞为什么会跌落神坛
  10. Python绘制直方图(Histograms)—从文件中读取数据画图update@2017-05-17