基于SpringMVC的文件上传和下载总结。
配置:
在SpringMVC配置文件中引入Spring处理文件上传的Bean,如下:
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="defaultEncoding" value="utf-8"></property> <property name="uploadTempDir" value="upload/temp"></property> </bean>
文件上传:
注意点包括:
1.文件上传域的表单的属性enctype必须为"multipart/form-data";带有文件域的表单提交后会刷新页面,也可以使用异步文件上传方式,参考->http://lpyyn.iteye.com/admin/blogs/2061960。
2.使用SpringMVC处理上传,文件上传的request请求类的为MultipartRequest,获取的文件为MultipartFile。其中MultipartFile可以在方法参数中,也可以通过MultipartRequest获取。参考代码如下:
@RequestMapping("upload") @ResponseBody public String uploadFile(@RequestParam("file") MultipartFile file) throws Exception{ logger.info("保存文件->"+file.getOriginalFilename()+" size->"+file.getSize()); return "ok" ; }
文件下载:
文件下载根本上是将文件的内容写入到response的outputStream中,Spring封装了一个ResponseEntity,其中封装了response的操作,但是它对outputStream是只读操作,在创建ResponseEntity时就要将outputStream对象作为参数传入到构造函数中。因此,文件的下载选择直接使用response对象。
使用response对象需要设置返回内容的编码类型、内容类型和附件信息。参考代码如下:
/** * 使用此种格式获取rest地址中文件名称及扩展名 * @param fileName * @param format * @param response * @throws Exception */ @RequestMapping("download/{fileName}.{format}") public void downloadFile(@PathVariable(value="fileName") String fileName, @PathVariable(value="format") String format,HttpServletResponse response) throws Exception{ fileName += "."+format ; logger.info("下载文件->"+fileName); //设置response对象的编码和内容类型 response.setCharacterEncoding("utf-8"); //设置内容编码类型为multipart/form-data(二进制文件上传和下载使用的格式) response.setContentType("multipart/form-data"); //需要单独设置文件编码格式,只支持ISO8859-1编码格式,使用GBK编码,支持中文,UTF-8不支持中文。 response.setHeader("Content-Disposition", "attachment;fileName="+new String(fileName.getBytes("GBK"), "ISO8859-1")); //直接使用response对象的输出流,避免在系统中创建文件输出流 fileService.get(response.getOutputStream(),fileName) ; //不使用SpringMVC自带的ResponseEntity对象,是因为ResponseEntity的Body是只读对象 }
有时候直接向response.getOutputStream()中写东西有可能会失败,可以将ByteArrayOutputStream做为一个中间件,先向ByteArrayOutputStream中写数据,然后再通过response.getOutputStream()输出数据,如下:
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream() ; fileService.get(byteArrayOutputStream , fileName) ; OutputStream outputStream = response.getOutputStream() ; outputStream.write(byteArrayOutputStream.toByteArray()) ; outputStream.flush() ; outputStream.close() ; byteArrayOutputStream.close() ;
相关推荐
基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于...
在这个项目中,我们使用IDEA来构建一个基于SpringMVC的系统,实现了文件的上传和下载功能。下面将详细介绍这个过程中的关键知识点。 1. **SpringMVC框架**: SpringMVC是Spring框架的一个模块,主要用于处理Web...
总结来说,基于Springmvc的图片上传和生成缩略图功能涉及以下几个关键步骤:配置Springmvc支持文件上传,编写Controller处理上传请求,生成并保存缩略图,以及与前端交互提供反馈。这些步骤都需要对Springmvc、文件I...
本文主要目的是记录自己基于SpringMVC实现的文件上传和下载的工具类的编写,代码经过测试可以直接运行在以后的项目中。开发的主要思路是对上传和下载文件进行抽象,把上传和下载的核心功能抽取出来分装成类。
在Web应用中,文件上传是一项常见的...总结,基于SpringMVC的文件上传功能涉及到环境配置、控制器编写、视图设计、文件存储策略以及安全措施等多个方面。理解并掌握这些知识点,可以构建出稳定、高效的文件上传系统。
总的来说,Spring MVC提供了处理文件上传和下载的强大支持,结合Java内置的压缩功能,我们可以轻松地实现文件上传、下载和压缩功能。在实际项目中,需要注意文件安全、性能优化以及异常处理等问题,以确保服务的稳定...
在JavaEE企业级开发中,SpringMVC框架是广泛用于构建Web应用程序的工具,它提供了丰富的功能,包括处理文件上传和下载。本实验报告将详细阐述如何利用SpringMVC实现文件上传与下载的功能。 首先,文件上传的核心...
在SpringMVC框架中,文件的上传和下载是常见的功能需求,主要用于处理用户的数据交互,例如用户上传图片、文档等,或者系统提供文件下载服务。本文将深入探讨如何使用SpringMVC来实现这一功能。 首先,我们需要理解...
Vue.js作为一个前端框架,可以很好地与Spring MVC结合,实现用户界面的交互和文件上传的处理。在这个项目中,我们将深入探讨如何使用Spring MVC作为后端控制器来处理文件上传,以及Vue.js在前端如何与之配合。 首先...
在SpringMVC框架中,文件操作是常见的功能需求,包括文件的上传、下载、更新和删除。本项目提供了完整的解决方案,覆盖了这些功能点。以下将详细解释这些知识点。 一、文件上传 在SpringMVC中,文件上传主要依赖于`...
SpringMVC文件上传下载 @Controller @RequestMapping(value="/file") public class FileController { @Resource private User user; @RequestMapping(value="/toUpload") public String toUpload(){ return...
5. **文件上传与下载**:在Web应用中,文件上传和下载是常见的功能需求。SpringMVC提供了一套完整的文件上传API,可以通过MultipartFile接口处理文件上传。文件下载则通常通过HTTP响应头控制,将服务器上的文件流...
以上就是SpringMVC实现文件上传、下载和国际化的基本流程。在实际项目中,可能需要根据需求进行更复杂的处理,如文件存储策略、错误处理、多文件上传等。同时,国际化可能涉及到更复杂的逻辑,如用户选择语言、动态...
Spring MVC 是一个基于Java的轻量级Web应用框架,它为构建动态Web应用程序提供了一种模型-视图...以上就是关于"Spring MVC 上传下载例子"的知识点介绍。理解并熟练掌握这些内容,将有助于你构建功能完善的Web应用程序。
这个"SpringMVC文件上传案例"展示了如何在Eclipse开发环境中实现这一过程。下面我们将详细探讨涉及的知识点。 首先,我们需要理解SpringMVC的核心概念。SpringMVC是Spring框架的一部分,它是一个用于构建Web应用的...
在Spring MVC框架中,文件上传和下载是常见的功能需求,特别是在构建Web应用程序时。这篇博客文章详细介绍了如何在Spring MVC项目中实现这两个操作。以下是对这些知识点的详细说明: 1. **Spring MVC简介** Spring...
在本项目中,我们结合了SpringMVC、Hadoop和Maven这三个技术,构建了一个能够实现文件从Web端上传到HDFS(Hadoop Distributed File System)的系统。下面将详细阐述这三个技术及其在项目中的应用。 首先,SpringMVC...
本篇将基于一个简单的示例,来讲解如何使用Spring MVC实现文件上传功能。 #### 二、环境配置与依赖 1. **项目构建**:确保项目是基于Spring MVC框架构建的。 2. **依赖添加**:在项目的pom.xml文件中添加以下依赖...
在这个主题“springMVC的上传与下载”中,我们将深入探讨如何在 Spring MVC 中实现文件上传和下载功能。 **文件上传** 1. **配置 Spring MVC**: 首先,你需要在 `web.xml` 文件中配置 DispatcherServlet 和 Spring...
一、SpringMVC文件上传基础 1. 配置SpringMVC 在`spring-mvc.xml`配置文件中,我们需要开启MultipartResolver来处理文件上传。通常选择`CommonsMultipartResolver`,因为它依赖于Apache Commons FileUpload库: ``...