文档章节

SpringMVC上传文件

chaun
 chaun
发布于 2015/09/23 10:29
字数 521
阅读 117
收藏 6

一、在pom.xml中添加依赖

<!-- io包 -->
	<dependency>
		<groupId>commons-io</groupId>
		<artifactId>commons-io</artifactId>
		<version>${commonsio.version}</version>
	</dependency>
	<!-- 加入fileupload依赖包 -->
	<dependency>
		<groupId>commons-fileupload</groupId>
		<artifactId>commons-fileupload</artifactId>
		<version>${commons-fileupload.version}</version>
	</dependency>

二、spring-mvc.xml配置文件上传

<!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
	<context:component-scan base-package="com.leech.controller" />
	
	<mvc:annotation-driven/>
	
	<!-- 配置静态资源不经过spring mvc -->
	<mvc:resources location="/static/" mapping="/static/**"/>
	
	<!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->
	<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
		<property name="prefix" value="/WEB-INF/jsp/"/>
		<property name="suffix" value=".jsp"/>
	</bean>  

	<!-- 文件上传配置 -->
	<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
		<property name="defaultEncoding" value="utf-8" />  
		<property name="maxUploadSize" value="10485760000" />  
		<property name="maxInMemorySize" value="40960" />  
	</bean>

三、编写UploadController上传控制器

import org.apache.log4j.Logger;

import java.io.File;
import java.io.IOException;
import java.util.Date;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

@Controller
@RequestMapping("/upload")
public class UploadController {
	/**
	 * Logger for this class
	 */
	private static final Logger LOG = Logger.getLogger(UploadController.class);

	@RequestMapping("/req")
	public String req() {
		return "upload";
	}

	@RequestMapping("/uploadHandler")
	public String uploadHandler(@RequestParam(value = "file") CommonsMultipartFile file)throws IllegalStateException, IOException {
		long startTime = System.currentTimeMillis();
		LOG.debug("文件长度: " + file.getSize());  
		LOG.debug("文件类型: " + file.getContentType());  
		LOG.debug("文件名称: " + file.getName());  
		LOG.debug("文件原名: " + file.getOriginalFilename());  
		String path = "E:/temp/" + new Date().getTime()+ file.getOriginalFilename();

		File newFile = new File(path);
		// 通过CommonsMultipartFile的方法直接写文件(注意这个时候)
		file.transferTo(newFile);
		long endTime = System.currentTimeMillis();
		LOG.debug("方法二的运行时间:" + String.valueOf(endTime - startTime)+ "ms");
		return "success";
	}
}

四、编写jsp页面

1、index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<a href="upload/req">springmvc-upload文件上传测试</a>
</body>
</html>

2、upload.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="uploadHandler" method="post" enctype="multipart/form-data">  
		<input type="file" name="file" />  
		<input type="submit" value="上传" />  
	</form>  
</body>
</html>

3、success.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
	上传文件成功!<br/>
	<a href="req">继续上传</a>
</body>
</html>

如果上传多个文件,可以使用MultipartFile[] files数组。

© 著作权归作者所有

chaun
粉丝 92
博文 271
码字总数 91117
作品 0
深圳
高级程序员
私信 提问
再springMVC中自定义文件上传处理解决与原spring中MultipartResolve冲突问题

    相信很多朋友再用springmvc时都遇见了一个问题,那就是自带的获取上传的东西太慢,而且不知道如何修改,其实不然,spring框架既然给我们开放了这个接口,就一定遵从了可扩展性的原则...

Visitors
2018/07/30
0
0
Video-No.01 李守宏_SpringMVC基础与应用视频教程

1、SpringMVC基本配置 1)引入spring Jar包 2)配置web.xm文件,加载SpringMVC配置 <?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instanc......

蓝汀华韶
2015/03/22
487
0
(十七)JAVA springcloud ssm b2b2c多用户商城系统-上传文件

这篇文章主要介绍,如何在springboot工程作为服务器,去接收通过http 上传的multi-file的文件。 构建工程 为例创建一个springmvc工程你需要spring-boot-starter-thymeleaf和 spring-boot-st...

sccspuercode
01/31
27
0
spring mvc文件上传实现进度条

文件上传应该大部分人都接触过,一般都是基于commons-fileupload组件来实现,SpringMVC的文件上传功能也是在commons-fileupload组件提供的功能上面做了一些包装功能,使文件上传开发更容易方...

小天120
2014/02/10
22.3K
20
Java springcloud B2B2C o2o多用户商城 springcloud架构 (十七)上传文件

这篇文章主要介绍,如何在springboot工程作为服务器,去接收通过http 上传的multi-file的文件。 构建工程 为例创建一个springmvc工程你需要spring-boot-starter-thymeleaf和 spring-boot-st...

itcloud
03/21
10
0

没有更多内容

加载失败,请刷新页面

加载更多

基于Prometheus和Grafana的监控平台 - 环境搭建

相关概念 微服务中的监控分根据作用领域分为三大类,Logging,Tracing,Metrics。 Logging - 用于记录离散的事件。例如,应用程序的调试信息或错误信息。它是我们诊断问题的依据。比如我们说...

JAVA日知录
51分钟前
5
0
PHP运行时全局构造体

struct _php_core_globals { zend_bool magic_quotes_gpc; // 是否对输入的GET/POST/Cookie数据使用自动字符串转义。 zend_bool magic_quotes_runtime; //是否对运行时从外部资源产生的数据使...

冻结not
52分钟前
4
0
webpack插件html-webpack-plugin

本文转载于:专业的前端网站→webpack插件html-webpack-plugin 1、插件安装 npm install html-webpack-plugin --save-dev 2、插件使用 webpack.config.js配置文件为: var htmlWebpackPlugin=...

前端老手
今天
6
0
数据挖掘

zhengchen1996
今天
4
0
nginx配置反向代理

文章来源 运维公会:nginx配置反向代理 1、简介 Nginx最为常见的一种功能就是配置反向代理。配置也是十分的简单,只需要用到proxy模块即可。 怎么查看nginx默认的安装模块? 在nginx的安装目...

运维团
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部