Spring实现文件上传
2013-07-27 16:32
357 查看
在实际开发中,经常遇到要实现文件上传到服务器端的功能。Spring可以继承commons-fileupload插件来实现文件上传的功能。分为前端JSP编写和后台Controller的编写。
前期准备工作,首先要引入commons-fileupload这个jar包,pom.xml中的配置如下:
直接上代码:
1、前端JSP编写
upload.jsp
前期准备工作,首先要引入commons-fileupload这个jar包,pom.xml中的配置如下:
<!-- 实现文件上传,spring集成了这个功能 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.2.2</version> </dependency>然后配置拦截器,在dispatcher-servlet.xml中添加
<!-- 实现文件上传,这样一旦某个Request是一个MultipartRequest,它就会首先被MultipartResolver处理,然后再转发相应的Controller --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 设置上传文件的最大尺寸为1MB --> <property name="maxUploadSize"> <value>1048576</value> </property> </bean>
直接上代码:
1、前端JSP编写
upload.jsp
<%@ page language="java" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <script src="resources/js/jquery.js"></script> </head> <body> <form method="post" action="upload.do" enctype="multipart/form-data"> <input type="file" name="file" /> <input type="submit" /> </form> </body> </html>2、后台UploadController编写
package nju.software.xkxt.web.controller; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; /** * @author typ * */ @Controller public class UploadController { /** * 进入下载界面 * * @param request * @param response * @param model * @return * @throws IOException */ @RequestMapping(value = "upload_enter.do", method = RequestMethod.GET) public String enter(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws IOException { // 进入下载界面 return "upload"; } /** * 具体的实现下载功能 * * @param request * @param response * @param model * @throws IOException */ @RequestMapping(value = "upload.do", method = RequestMethod.POST) public void upload(HttpServletRequest request, HttpServletResponse response, ModelMap model) throws IOException { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; // 得到上传的文件 MultipartFile mFile = multipartRequest.getFile("file"); // 得到上传服务器的路径 String path = request.getSession().getServletContext() .getRealPath("/WEB-INF/upload/"); // 得到上传的文件的文件名 String filename = mFile.getOriginalFilename(); byte[] b = mFile.getBytes(); path += "\\" + filename; // 文件流写到服务器端 FileOutputStream outputStream = new FileOutputStream(path); outputStream.write(b); outputStream.close(); } }这样就很容易的实现了文件上传的功能。
相关文章推荐
- MongodbGFS结合SpringBoot 实现大文件的简单上传与下载
- 【uploadify】使用Uploadify+SpringMVC实现不用From文件页面无刷上传
- SpringMVC+Volley实现Android端上传文件
- springMVC+jersey实现跨服务器文件上传
- spring+mongodb 文件上传与下载实现
- SpringBoot下文件上传与下载的实现
- springMVC+ajax实现文件上传且带进度条实例
- spring 文件上传功能实现
- Jquery+SpringMVC实现上传Excel文件,并批量导入
- 基于Spring3 MVC实现基于form表单上传Excel文件,批量导入数据!
- Spring Web mvc Maven实现文件上传
- Spring整合阿里云OSS服务实现文件上传
- springboot+bootstrap fileupinput 插件实现文件上传
- SpringBoot下文件上传与下载的实现
- Springboot+easyUI filebox实现单个文件上传
- 使用spring-mvc实现文件上传
- springmvc + multipart 实现文件上传
- spring实现单(多)文件上传,列表显示与下载
- Spring中MultipartHttpServletRequest实现文件上传
- FTP+SpringMVC+Uploadify实现带进度条多文件上传