最近博主在做SpringMvc文件上传和下载的功能实现,上网查了很多资料很多都不太符合理想,找啊找,终于找到一个可以用的,然后再此基础上,我加以改进,可以支持多文件上传,而且代码非常精简,大家可以看看.

          http://pan.baidu.com/s/1o7Oo4NC 原码下载

首先需要导入jar包:

然后,在applicatinContext.xml中添加上传和下载的配置文件,如下:

 <!-- 文件上传的配置 --><bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">   <!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->   <property name="maxUploadSize" value="200000"/>   </bean>   <!-- 该异常是SpringMVC在检查上传的文件信息时抛出来的,而且此时还没有进入到Controller方法中 -->   <bean id="exceptionResolver" class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">   <property name="exceptionMappings">   <props>   <!-- 遇到MaxUploadSizeExceededException异常时,自动跳转到WebContent目录下的error.jsp页面 -->   <prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">error</prop>   </props>   </property>   </bean>

好了,最基础的配置就好了,接下来jsp页面:upload.jsp

<form action="upload.do" method="post" enctype="multipart/form-data">文件1: <input type="file" name="myfiles"/><br/>   文件2: <input type="file" name="myfiles"/><br/>   文件3: <input type="file" name="myfiles"/><br/>   <input type="submit" value="上传">
</form>

Controller中对应的java代码:

 @RequestMapping("/upload.do")public String upload(@RequestParam MultipartFile[] myfiles, HttpServletRequest request) throws IOException {for (MultipartFile file : myfiles) {// 此处MultipartFile[]表明是多文件,如果是单文件MultipartFile就行了if (file.isEmpty()) {System.out.println("文件未上传!");} else {// 得到上传的文件名String fileName = file.getOriginalFilename();// 得到服务器项目发布运行所在地址String path1 = request.getSession().getServletContext().getRealPath("image") + File.separator;// 此处未使用UUID来生成唯一标识,用日期做为标识String path = path1 + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + fileName;// 查看文件上传路径,方便查找System.out.println(path);// 把文件上传至path的路径File localFile = new File(path);file.transferTo(localFile);}}return "uploadSuccess";}

这样就可以把网页上选择的图片上传上去了

下载成功了!

文件下载

(文件下载我是参照网上一位前辈的,在此注明他的博客网址:http://my.oschina.net/u/1394615/blog/311307):

download.jsp:此处为了测试,我直接把文件名当作参数传过去:

<a href="download.do?fileName=2016082312271111111.jpg">下载</a> 

Controller:

 @RequestMapping("/download")public String download(String fileName, HttpServletRequest request, HttpServletResponse response) {response.setCharacterEncoding("utf-8");response.setContentType("multipart/form-data");response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);try {String path = request.getSession().getServletContext().getRealPath("image") + File.separator;InputStream inputStream = new FileInputStream(new File(path + fileName));OutputStream os = response.getOutputStream();byte[] b = new byte[2048];int length;while ((length = inputStream.read(b)) > 0) {os.write(b, 0, length);}// 这里主要关闭。os.close();inputStream.close();} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}// 返回值要注意,要不然就出现下面这句错误!// java+getOutputStream() has already been called for this responsereturn null;}

OK,springmvc的上传下载就完成了!

SpringMvc文件上传和下载相关推荐

  1. SpringMVC 文件上传及下载

    文件下载 inline 访问资源时如果没有设置响应头Content-Disposition,浏览器默认按照inline进行处理 inline:能显示就显示,不能显示就下载 响应头 只需修改响应头Con ...

  2. 【Spring】SpringMVC文件上传与下载

    对于上传功能,我们在项目中是经常会用到的,比如用户注册的时候,上传用户头像,这个时候就会使用到上传的功能.而对于下载,使用场景也很常见,比如我们项目中有个使用说明是是pdf版的,会提供给用户进行下载的 ...

  3. spring-mvc文件上传与下载

    上传: 下载: 所依赖的包: 核心servlet: applicationContext.xml: 转载于:https://www.cnblogs.com/mywawa/p/6970260.html

  4. Springmvc文件上传(servlet3.0)/下载(ssm)以及坑点

    前言 (补充:再linux服务器上可能没用创建文件的权限,那就需要找到文件夹给权限,比如我的chmod -R 777 /home/tomcat/apache-tomcat-default/webapp ...

  5. springMVC的文件上传于下载

    springMVC的文件上传于下载 1.springmvc 文件的上传也是借助于两个工具所以需要添加两个jarapache-commons-fileupload.jarapache-commons-i ...

  6. SpringMVC——文件上传下载,异步请求和SSM整合

    一,SpringMVC文件上传下载 1.1 同步 1.1.1 文件上传 第一步:定义上传表单 <form action="${pageContext.request.contextPa ...

  7. 最全面的SpringMVC教程(五)——文件上传与下载

    前言 本文为 [SpringMVC教程]文件上传与下载 相关知识,具体将对使用MultipartResolver处理文件上传的步骤,两种文件下载方式(直接向response的输出流中写入对应的文件流. ...

  8. 使用SpringMVC框架实现文件上传和下载功能

    使用SpringMVC框架实现文件上传和下载功能 (一)单个文件上传 ①配置文件上传解释器 <!-配置文件上传解释器 --> <mvc:annotation-driven>&l ...

  9. SSM之SpringMVC 04 —— Ajax、拦截器、文件上传和下载

    系列文章 SSM之SpringMVC 01 -- SpringMVC原理及概念.Hello SpringMVC 注解版和配置版 SSM之SpringMVC 02 -- Controller和RestF ...

最新文章

  1. centos6.4下LVS+keepalived的高可用(LVS/DR模式)
  2. 【Cocosd2d实例教程七】Cocos2d实现超炫的粒子效果!!
  3. python读取rar文件_在 python 中,如何读取由 7z 压缩的文本文件_python_酷徒编程知识库...
  4. linux cpp vscode远程调试 的配置
  5. CentOS 下线,TencentOS Server 全新登陆带来最强支持
  6. Docker入门系列之三:如何将dockerfile制作好的镜像发布到Docker hub上
  7. Js中caller和callee的区别
  8. 变形金刚热映黑客借机“下毒” 用户谨防木马
  9. oracle查询题目2道
  10. 【BZOJ2437】【codevs1949】兔兔与蛋蛋游戏,博弈+二分图匹配
  11. win7系统的自动更新很长时间,如何关闭
  12. Wide Deep 模型详解
  13. win10 java8安装包双击之后完全没反应
  14. 传染病模型——波利亚坛子
  15. 迭代器模式之看芒果台还是央视nie?
  16. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx分解线xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  17. Java高级开发必备--Docker进阶(一篇详细教程,进阶Docker)
  18. 计算机密码学学习笔记(二)——Shannon理论
  19. Net Core WebApi自定义拦截特性简单实现
  20. 2021年成都列五高中高考成绩查询,2021年成都高考各高中成绩及本科升学率数据排名及分析...

热门文章

  1. 崇闵摄影课·10款日常后期视频调色LUT 支持PR/达芬奇/FCPX
  2. [Python] 先读后覆盖写文件
  3. 理论+实验·MySQL数据库管理
  4. 又整理了一周爬虫的学习资料,内含入门、实战、视频,请收藏
  5. idea中如何添加Tomcat镜像并配置项目
  6. zzuli OJ 1127: 矩阵乘积
  7. 2016年8月10日 星期三 --出埃及记 Exodus 16:10
  8. 调用函数用new申请空间的释放方法
  9. ipvs命令~创建VS/DR模式集群
  10. python各种编辑器、APP、软件下载