SSM框架的整合请看我之前的博客:http://www.cnblogs.com/1314wamm/p/6834266.html

现在我们先看如何编写文件的上传下载:你先看你的pom.xml中是否有文件上传的组件包

先看我们写的测试jsp页面:

  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=ISO-8859-1">
  7. <title>文件上传下载</title>
  8. </head>
  9. <body>
  10. <form action="http://localhost:8080/uploadDemo/rest/file/upload" method="post" enctype="multipart/form-data">
  11. 选择文件:<input type="file" name="file" width="120px">
  12. <input type="submit" value="上传">
  13. </form>
  14. <hr>
  15. <form action="http://localhost:8080/uploadDemo/rest/file/down" method="get">
  16. <input type="submit" value="下载">
  17. </form>
  18. </body>
  19. </html>

spring的servlet视图解析器下面定义CommonsMultipartResolver文件解析器,就是加入这个的时候运行项目,如果没有fileuload相关的jar包就会报错。

在controller层写上springmvc上传下载的代码

  1. package com.baidu;
  2. @RequestMapping("file")
  3. @Controller
  4. public class FileController {
  5. /**
  6. * 文件上传功能
  7. * @param file
  8. * @return
  9. * @throws IOException
  10. */
  11. @RequestMapping(value="/upload",method=RequestMethod.POST)
  12. @ResponseBody
  13. public String upload(MultipartFile file,HttpServletRequest request) throws IOException{
  14. String path = request.getSession().getServletContext().getRealPath("upload");
  15. String fileName = file.getOriginalFilename();
  16. File dir = new File(path,fileName);
  17. if(!dir.exists()){
  18. dir.mkdirs();
  19. }
  20. //MultipartFile自带的解析方法
  21. file.transferTo(dir);
  22. return "ok!";
  23. }
  24.  
  25. /**
  26. * 文件下载功能
  27. * @param request
  28. * @param response
  29. * @throws Exception
  30. */
  31. @RequestMapping("/down")
  32. public void down(HttpServletRequest request,HttpServletResponse response) throws Exception{
  33. //模拟文件,myfile.txt为需要下载的文件
  34. String fileName = request.getSession().getServletContext().getRealPath("upload")+"/myfile.txt";
  35. //获取输入流
  36. InputStream bis = new BufferedInputStream(new FileInputStream(new File(fileName)));
  37. //假如以中文名下载的话
  38. String filename = "下载文件.txt";
  39. //转码,免得文件名中文乱码
  40. filename = URLEncoder.encode(filename,"UTF-8");
  41. //设置文件下载头
  42. response.addHeader("Content-Disposition", "attachment;filename=" + filename);
  43. //1.设置文件ContentType类型,这样设置,会自动判断下载文件类型
  44. response.setContentType("multipart/form-data");
  45. BufferedOutputStream out = new BufferedOutputStream(response.getOutputStream());
  46. int len = 0;
  47. while((len = bis.read()) != -1){
  48. out.write(len);
  49. out.flush();
  50. }
  51. out.close();
  52. }
  53. }

SSM框架之中如何进行文件的上传下载的更多相关文章

  1. SpringMVC框架(四)文件的上传下载,上下文路径

    文件目录: SpringMVC配置文件: <?xml version="1.0" encoding="UTF-8"?> <beans xmln ...

  2. (SSM框架)实现小程序图片上传(配小程序源码)

    阅读本文约"2分钟" 又是一个开源小组件啦! 因为刚好做到这个小功能,所以就整理了一下,针对微信小程序的图片(文件)上传! 原业务是针对用户反馈的图片上传.(没错,本次还提供小程序 ...

  3. Spring实现文件的上传下载

    背景:之前一直做的是数据库的增删改查工作,对于文件的上传下载比较排斥,今天研究了下具体的实现,发现其实是很简单.此处不仅要实现单文件的上传,还要实现多文件的上传. 单文件的下载知道了,多文件的下载呢? ...

  4. 在Window的IIS中创建FTP的Site并用C#进行文件的上传下载

    文件传输协议 (FTP) 是一个标准协议,可用来通过 Internet 将文件从一台计算机移到另一台计算机. 这些文件存储在运行 FTP 服务器软件的服务器计算机上. 然后,远程计算机可以使用 FTP ...

  5. 创建FTP的Site并用C#进行文件的上传下载

    创建FTP的Site并用C#进行文件的上传下载 文件传输协议 (FTP) 是一个标准协议,可用来通过 Internet 将文件从一台计算机移到另一台计算机. 这些文件存储在运行 FTP 服务器软件的服 ...

  6. linux链接及文件互相上传下载

    若排版紊乱可查看我的个人博客原文地址 基本操作 本篇博客主要介绍如何去链接远程的linux主机及如何实现本地与远程主机之间文件的上传下载操作,下面的linux系统是CentOS6.6 链接远程linu ...

  7. SocketIo+SpringMvc实现文件的上传下载

    SocketIo+SpringMvc实现文件的上传下载 socketIo不仅可以用来做聊天工具,也可以实现局域网(当然你如果有外网也可用外网)内实现文件的上传和下载,下面是代码的效果演示: GIT地址 ...

  8. JAVAWEB之文件的上传下载

    文件上传下载 文件上传: 本篇文章使用的文件上传的例子使用的都是原生技术,servelt+jdbc+fileupload插件,这也是笔者的习惯,当接触到某些从未接触过的东西时,总是喜欢用最原始的东西将 ...

  9. python使用ftplib模块实现FTP文件的上传下载

    python已经默认安装了ftplib模块,用其中的FTP类可以实现FTP文件的上传下载 FTP文件上传下载 # coding:utf8 from ftplib import FTP def uplo ...

随机推荐

  1. npm install报错类似于npm WARN tar ENOENT: no such file or directory, open '***\node_modules\.staging\***

    报错类似于如下图 解决方法: 删除文件 package-lock.json,再重新执行npm i或者npm install

  2. CentOS 7.2 (mini) 里iptables防火墙怎么关闭?

    centos从7开始默认用的是firewalld,这个是基于iptables的,虽然有iptables的核心,但是iptables的服务是没安装的.所以你只要停止firewalld服务即可:sudo ...

  3. 转:移动建站工具(一):分秒钟将Web网站移动化

      作者唐小引 移动建站工具Web移动化简易开发MobifyTOPMobile Joomla!MoFuseWordPress优化 摘要:时下移动端显然已是诸多企业都想要占领的重要阵地.但限于较小的屏幕 ...

  4. VS2008 集成Lua解释器

    1. 登陆官网下载源代码 -> www.lua.org -> get started ->  installing  选择系统类型(这里是Windows的,所下面载 luaDist) ...

  5. SVN版本号管理工具使用中常见的代码提交冲突问题的解决方法

    相信刚開始学习使用SVN的小伙伴在项目合作开发的过程中一定常常遇到一些影响到自己编写的代码的苦恼.我这里列举了几种常见的问题以及问题的解决方法: 1.误删除和误操作的问题 问题1:有A和B两个人一块合 ...

  6. react ---- Router路由的使用和页面跳转

    React-Router的中文文档可以参照如下链接: http://react-guide.github.io/react-router-cn/docs/Introduction.html 首先,我们 ...

  7. CSS中关于vertical-align垂直对齐

    一向以来,我对vertical-align的属性都搞的不是太清楚,今天刚好碰到有朋友问我相关的问题,于是自己潜心研究了一番,发现这玩意还真不是个简单的东西,在此我分享的东西都是抛弃脑残的IE的,如果你 ...

  8. jquery-validator中js校验及标签校验的使用

    jquery-validator中js校验及标签校验的使用: 1.项目中引入jquery.validate.js  官方网站:http://bassistance.de/  http://jquery ...

  9. GridView 绑定 ObjectDataSource

    创建GridView <asp:GridView ID="GridView1" runat="server" DataSourceID="Obj ...

  10. PostgreSQL Replication之第六章 监控您的设置(1)

    在本书的前几章,您已经学习了各种复制以及如何配额制各种类型的场景.现在是时候通过增加监控来让您的设置更加可靠了. 在本章中,您将学习监控什么以及如恶化实施合理的监控车辆.您将学习: • 检查您的 XL ...