- 浏览: 48712 次
- 性别:
- 来自: 广州
最新评论
-
sheertewtw:
地狱
springMVC3.2 简单实现文件的上传和下载 -
sheertewtw:
地板
springMVC3.2 简单实现文件的上传和下载 -
sheertewtw:
板凳
springMVC3.2 简单实现文件的上传和下载 -
sheertewtw:
沙发
springMVC3.2 简单实现文件的上传和下载 -
yanhongli527:
[b][/b]在配置文件中去掉
<bean id=&qu ...
SpringMVC整合KindEditor上传文件的处理
今天通过各种手段做了一个springmvc简单实现文件上传下载的功能,特别记录在这里以备以后查询,并请各位大神大牛指导代码与设计中的不足。
上传文件------展示文件库中所有的文件-------点击下载按钮下载
源代码在附件中
web.xml代码:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <!-- The definition of the Root Spring Container shared by all Servlets and Filters --> <!-- spring mvc 拦截 start --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/spring-servlet.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>*.do</url-pattern> </servlet-mapping> <!-- spring mvc 拦截 end --> <!-- 编码问题 start--> <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 编码问题 end--> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
springmvc配置文件代码spring-servlet.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd"> <context:component-scan base-package="springapp" /> <mvc:annotation-driven /> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="prefix" value="/view/" /> <property name="suffix" value=".jsp" /> </bean> <!-- 配置 文件上传 start --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="1000000" /> </bean> <!-- 配置 文件上传 end --> </beans>
文件上传的页面uploadFile.jsp
<form action="fileupload.do" method="post" enctype="multipart/form-data"> file:<input type="file" name="file"/><br/> <input type="submit" value="submit"/> </form>
展示所有文件的页面
<c:forEach items="${files}" var="file"> <form action="downloadFile.do" method="post" > <label>${file.name}</label> <input type="submit" value="下载"/> <input type="hidden" name ="fileName" value="${file.name}"> </form> </c:forEach>
文件上传、展示、下载的控制类
package springapp.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.context.ServletContextAware; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @Controller public class FileAction implements ServletContextAware { private ServletContext servletContext; /** * 单个文件上传 * * @param request * @param mrequest * @param response * @return * @throws IOException */ @RequestMapping(value = "fileupload.do", method = RequestMethod.POST) public String fileUpload(HttpServletRequest request, Model model, MultipartHttpServletRequest mrequest, HttpServletResponse response) throws IOException { MultipartFile file = mrequest.getFile("file"); String fileName = file.getOriginalFilename(); String path = this.servletContext.getRealPath("temp"); // System.out.println(path); String pathAndfileName = path + "\\" + fileName; // System.out.println(pathAndfileName); if (!file.isEmpty()) { this.copyFile(file.getInputStream(), pathAndfileName); return "redirect:showFile.do"; } model.addAttribute("msg", "上失败"); return "uploadFile"; } /** * 保存文件到本地 * * @param in * @param fileName * @throws IOException */ public void copyFile(InputStream in, String filePathAndName) throws IOException { FileOutputStream fos = new FileOutputStream(filePathAndName); byte[] buffer = new byte[1024 * 1024]; int bytesum = 0; int byteread = 0; while ((byteread = in.read(buffer)) != -1) { bytesum += byteread; fos.write(buffer, 0, byteread); fos.flush(); } fos.close(); in.close(); } public void setServletContext(ServletContext arg0) { // TODO Auto-generated method stub this.servletContext = arg0; } /** * 展示文件 * * @param model * @param request * @param response * @return */ @RequestMapping("showFile.do") public String showFile(Model model, HttpServletRequest request, HttpServletResponse response) { String fileAddress = this.servletContext.getRealPath("temp"); File[] files = new File(fileAddress).listFiles(); List<File> fileList = new ArrayList<File>(); for (File file : files) { fileList.add(file); } model.addAttribute("files", fileList); return "showFile"; } /** * 下载文件 * @param response * @param fileName * @throws IOException */ @RequestMapping(value = "downloadFile.do", method = RequestMethod.POST) public void downLoadFile(HttpServletResponse response, @RequestParam("fileName") String fileName) throws IOException { response.setContentType("multipart/form-data"); response.setHeader("Content-Disposition", "attachment;fileName=" + new String(fileName.getBytes("gb2312"), "iso8859-1")); File file = new File(fileName); String path = this.servletContext.getRealPath("temp"); InputStream in = new FileInputStream(path + "\\" + file); OutputStream os = response.getOutputStream(); byte[] b = new byte[1024 * 1024]; int length; while ((length = in.read(b)) > 0) { os.write(b, 0, length); } in.close(); } }
- SpringMVCFileUpload.rar (6.1 MB)
- 下载次数: 98
评论
4 楼
sheertewtw
2016-09-09
地狱
3 楼
sheertewtw
2016-09-09
地板
2 楼
sheertewtw
2016-09-09
板凳
1 楼
sheertewtw
2016-09-09
沙发
发表评论
-
请教一个算法问题。
2014-09-14 22:35 693请教一个算法问题,有一个集合,List<DeptUs ... -
centos5.x下yum安装nginx
2014-08-22 16:02 856在centos5.x下安装nginx 1、执行一下语句 r ... -
java生成PDF417条码
2013-11-03 20:53 5020最近要做一个功能 1、生成PDF417条形码。 2、识别 ... -
spring+mybatIS之helloworld
2013-09-08 21:27 1851怒放的生命镇博。。 ... -
lunece入门之HelloWorld
2013-08-23 10:42 1982屌丝又发少年狂 左 ... -
operamasks ui+springmvc实现数据字典功能
2013-04-19 16:35 3398最近分配到了一个新的任务就是“数据字典”功能, ... -
tomcat+nginx搭建服务器
2013-04-15 09:50 1622上周末自己用一款开源的CMS(JEECMS)搭建了一个我自 ... -
利用jxl把excel中的数据导入数据库
2013-04-09 11:28 1680今天有一个客户把一个excel表格给我,要我把数据导入到数 ... -
SpringMVC整合KindEditor上传文件的处理
2013-02-27 17:15 7466写这篇文章前必须的感谢一下 http://my.oschi ... -
jquery的遍历操作(转)
2013-02-26 18:11 1222本文转自:http://hi.baidu.com/love ... -
列表中的记录上下移动-扩展(移动之后继续保持选择状态)
2013-02-20 14:20 941继上一篇列表中的记录上下移动之后的一个扩展 在某一条纪录 ... -
列表中的记录上下移动
2013-02-19 09:38 1244最近有一个需求是实现一个表格中记录的上下移动如下图所示选择 ... -
springmvc集成kaptcha
2013-01-30 12:38 1870今天在网上看了一些资料,再花了2个积分在CSDN下载了一个 ... -
spring实现邮件发送
2013-01-21 17:26 1036spring实现邮件发送(简单版) 用spring实现邮 ... -
给字符进行MD5加密
2013-01-17 10:38 1336给一个字符串进行MD5加密 public class ... -
springMVC3.2实现后台校验
2012-12-30 19:04 1474最近学习了一下springmvc中后台校验功能的实 ...
相关推荐
SpringMVC提供方便的文件上传和下载支持。`MultipartFile`接口处理文件上传,而`StreamingResponseBody`则可用于大文件的分块下载。 九、RESTful风格的支持 SpringMVC 3.2加强了对RESTful风格的支持,包括使用URI...
Spring Web MVC是一种基于Java的实现了...支持本地化(Locale)解析、主题(Theme)解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。
Spring MVC 提供了处理文件上传和下载的便利功能,支持多文件上传,以及设置文件大小限制。 12. **异步处理** 使用 `@Async` 和 `@EnableAsync` 注解,可以实现 MVC 控制器方法的异步执行,提高应用性能。 13. *...
然而,在Spring MVC框架中,为了更好地整合现有的技术栈并简化开发流程,Spring MVC提供了内置的支持来处理文件上传,而这一切都是通过`MultipartFile`接口来实现的。 #### 二、Spring MVC 文件上传的核心组件——...
通过`MultipartFile`类处理文件上传。 ##### 6.4 JSON数据交互 利用`@RequestBody`和`@ResponseBody`注解进行JSON数据的读写。 ##### 6.5 RESTful支持 使用`@GetMapping`、`@PostMapping`等注解实现RESTful风格...
本篇文章将对 SpringMVC 的数据管理、Ajax 交互、文件上传、下载、验证码、拦截器实现和全局异常处理等方面的知识点进行详细的解释。 一、SpringMVC 数据管理 在 SpringMVC 中,数据管理是通过 Model 机制和 ...
本教程旨在深入讲解 SpringMVC 中的关键技术和实现方式,帮助开发者快速掌握并应用在实际项目中。 **初识 SpringMVC** 在 Web 开发领域,MVC 设计模式被广泛采用,它将业务逻辑(Model)、用户界面(View)和数据...
- **实现方式**:使用MultipartResolver解析文件上传请求,通过`@RequestParam`或`@RequestPart`注解处理上传文件。 ##### 6.4 JSON数据交互 - **实现方式**:使用`@ResponseBody`注解将Java对象序列化为JSON字符串...
- **实现方式**:通过MultipartFile接口处理文件上传操作。 - **配置项**:配置文件大小限制等。 #### 5.3 异常处理 - **全局异常处理器**:使用@ControllerAdvice和@ExceptionHandler注解定义全局异常处理器。 - *...
SpringMVC支持文件上传,只需添加相应的依赖并在控制器方法中处理上传的文件。 #### 六、拦截器与异常处理 **6.1 拦截器(Interceptor)** SpringMVC支持自定义拦截器,用于在处理请求前后执行特定操作。 **6.2 ...
- **强大的功能**:包括表单验证、文件上传、国际化支持等。 ### 二、Spring MVC的工作流程 #### 2.1 请求处理流程 1. **前端控制器**(DispatcherServlet):作为请求的入口,接收客户端请求。 2. **处理器映射器...
Spring 3.2 版本是该框架的一个重要里程碑,包含了多个模块,每个模块都有其特定的功能和用途。以下是对给定的Spring 3.2全套jar包的详细解析: 1. **spring-core-3.2.11.RELEASE.jar**:这是Spring框架的核心模块...
5.3 文件上传下载:通过CommonsMultipartFile实现文件上传,OutputStream处理文件下载。 5.4 RESTful风格:使用@RequestMapping配合HTTP动词(GET、POST、PUT、DELETE等)实现RESTful API。 六、实战应用 在实际...
SpringMVC提供了便捷的文件上传和下载功能,通过MultipartFile接口处理上传文件,通过StreamingResponseBody处理文件下载。 4.4 异常处理 自定义异常处理器,使用@ControllerAdvice和@ExceptionHandler注解,可以...
**11.2 Spring文件上传和下载** 具体的实现细节,如使用MultipartFile类处理文件。 **11.3 异常处理** 通过@ControllerAdvice和@ExceptionHandler注解处理异常。 **11.4 拦截器** 拦截器可以对请求进行预处理或...
它支持将请求映射到控制器方法,并提供了对请求和响应的完整控制,包括数据绑定、数据验证、国际化、文件上传等功能。 Spring MVC还支持通过@Valid注解进行声明式模型验证,可以对请求数据进行验证,并将验证结果以...
3、ExtJS的HtmlEditor的图片文件上传插件。 4、Grid列表和表单,包含添加、删除、批量删除、修改、查看、图片查看和按条件查询列表等功能。 5、导入导出Excel数据,支持xlsx和xls文件。 6、资源管理(菜单管理)。 7...
Spring MVC 学习总结(五)——校验与文件上传 目录 2.2.7、范围 2.2.8、其它注解 2.3、注解控制器参数 1.4、在UI中添加错误标签 1.5、测试运行 三、使用jQuery扩展插件Validate实现前端校验 3.1、jQuery扩展插件...
实现文件的上传、下载、分享和版本控制,保证文件的安全和一致性。 3.6 通讯录管理 维护企业内部员工联系信息,便于快速查找和沟通。 第 4 章 功能分析与业务流程分析 这部分详细阐述各个功能模块的工作原理和业务...