Spring MVC 之文件上传(七)

SpringMVC同样使用了apache的文件上传组件。所以需要引入以下包:

apache-commons-fileupload.jar

apache-commons-io.jar

在springAnnotation-servlet.xml中配置

1 <!-- 定义文件上传解析器 -->
2     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
3         <property name="maxUploadSize" value="-1"/><!-- -1代表不限制文件大小,单位是B -->
4         <property name="defaultEncoding"  value="utf-8"/><!-- 设置字符集编码 -->
5         <property name="maxInMemorySize" value="1024"/><!-- 内存中最大内存空间,单位是B NO KB -->
6     </bean>

控制器:

 1 package com.cy.springannotation.controller;
 2
 3 import java.io.File;
 4
 5 import javax.servlet.http.HttpServletRequest;
 6
 7 import org.apache.log4j.Logger;
 8 import org.springframework.stereotype.Controller;
 9 import org.springframework.web.bind.annotation.RequestMapping;
10 import org.springframework.web.bind.annotation.RequestMethod;
11 import org.springframework.web.bind.annotation.RequestParam;
12 import org.springframework.web.multipart.commons.CommonsMultipartFile;
13
14 @Controller
15 public class FileUploadController {
16     private Logger log = Logger.getLogger(this.getClass());
17
18
19     /**
20      * CommonsMultipartFile file
21      * @param file
22      * @return
23      */
24     @RequestMapping(value="/upload.do",method=RequestMethod.POST)
25     public String upload(@RequestParam("fileName") CommonsMultipartFile file,HttpServletRequest req){
26         //获取原始文件名
27         String fileName = file.getOriginalFilename();
28         log.info(fileName);
29         String path = req.getSession().getServletContext().getRealPath("upload");
30         try {
31             file.getFileItem().write(new File(path + File.separator + fileName));
32         } catch (Exception e) {
33
34             log.error(e);
35         }
36         return "success";
37     }
38
39 }

上传文件页面:

 1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
 2 <%
 3 String path = request.getContextPath();
 4 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
 5 %>
 6
 7 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 8 <html>
 9   <head>
10     <base href="<%=basePath%>">
11
12     <title>文件上传</title>
13
14     <meta http-equiv="pragma" content="no-cache">
15     <meta http-equiv="cache-control" content="no-cache">
16     <meta http-equiv="expires" content="0">
17     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
18     <meta http-equiv="description" content="This is my page">
19     <!--
20     <link rel="stylesheet" type="text/css" href="styles.css">
21     -->
22
23   </head>
24
25   <body>
26    <form action="upload.do" method="post" enctype="multipart/form-data">
27         <table>
28             <tr>
29                 <td><input type="file" name="fileName"/></td>
30             </tr>
31             <tr>
32                 <td><input type="submit" value="提交"/></td>
33             </tr>
34         </table>
35     </form>
36
37   </body>
38 </html>

上传文件就可以了!

时间: 2024-10-21 08:30:52

Spring MVC 之文件上传(七)的相关文章

Spring MVC 多文件上传大小限制及异常处理

Spring MVC  多文件上传大小限制及异常处理 太阳火神的美丽人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致"创作公用协议 转载请保留此句:太阳火神的美丽人生 -  本博客专注于 敏捷开发及移动和物联设备研究:iOS.Android.Html5.Arduino.pcDuino,否则,出自本博客的文章拒绝转载或再转载,谢谢合作. 在 spring mvc 的默认配置文件 WEB-INF/xxx-servlet.xml 中

【Spring学习笔记-MVC-13】Spring MVC之文件上传

作者:ssslinppp       1. 摘要 Spring MVC为文件上传提供了最直接的支持,这种支持是通过即插即用的MultipartResolve实现的.Spring使用Jakarta Commons FileUpload技术实现了一个MultipartResolver实现类:CommonsMultipartResolver. 下面将具体讲解Spring MVC实现文件上传的具体步骤. 2. 添加Jar包 Spring MVC文件上传,需要添加如下两个jar包: commons-fil

spring mvc ajaxfileupload文件上传返回json下载问题

问题:使用spring mvc ajaxfileupload 文件上传在ie8下会提示json下载问题 解决方案如下: 服务器代码: @RequestMapping(value = "/addAnalysis", method = RequestMethod.POST) public void addAnalysisUI( HttpServletResponse response,HttpServletRequest request,HttpSession session, @Requ

Ext4.2结合Spring MVC实现文件上传显示进度

1.实现原理: 在大文件上传时显示上传进度是很有必要的,不能让用户感觉到陷入无穷的等待中,或感觉程序已经卡死.为此我们可以在session中存一个上传进度的变量,在文件上传的过程中实时的去修改这个值,这就需要在后台重写Spring MVC自带的上传解析类,每上传一定的字节数就修改一下session中的进度,在前台通个AJAX请求每隔一定的时间去获取这个值显示给用户,这样就达到了显示上传进度的需求,不过这样频繁的请求服务器无疑是增加了服务器的压力,在没有使用任何第三方上传组件的情况下只能如此. 2

spring mvc注解文件上传下载

需要两个包: 包如何导入就不介绍了,前端代码如下(一定要加enctype="multipart/form-data"让服务器知道是文件上传): <form action="upload.do" method="post" enctype="multipart/form-data"> <input type="file" id="upimage" name="f

Spring MVC实现文件上传和下载

本篇博客将讲解的是Springmvc的文件上传和下载功能.对于上传功能,我们在项目中是经常会用到的,比如用户注册的时候,上传用户头像,这个时候就会使用到上传的功能.而对于下载,使用场景也很常见,比如我们项目中有个使用说明是是pdf版的,会提供给用户进行下载的功能.相对于来说,这两个功能都是很常见,废话不多说,按照惯例,我们先来看一下本篇博客的目录. 目录 一:搭建SpringMvc开发环境 二:实现文件上传的功能 三:将上传文件绑定到具体的对象上 四 : 实现用户下载的功能 五:总结 一:搭建S

java之spring mvc之文件上传

目录结构如下: 注意,下面说的配置文件,一般都是值的src下的配置文件,即mvc.xml.如果是web.xml,则直接说 web.xml 1. 文件上传的注意点 表单必须是post提交,必须将 enctype 设置为 “multipart/form-data”, 使用 commons-fileupload 提交文件,需要添加 commons-fileupload 和 commons-io 的 jar 包. 2.Jsp 页面 <form action="file/upload.do"

spring mvc CommonsMultipartResolver文件上传maxUploadSize限制大小

第一步:配置sping Xml代码   <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!--1024*200即200k--> <property name="maxUploadSize" value="204800"/> <

spring test---restful与文件上传

spring提供了大量经常使用的功能測试,如文件上传.restful风格url訪问.以下介绍主要介绍下test中经常使用功能的使用方法: 首先能够静态导入类.方便在測试类中使用,导入的类有 import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; import static org.springframework.test.web.client.response.MockR