Spring MVC - MultipartFile实现文件上传(单文件与多文件上传)
准备工作: 需要先搭建一个spirngmvc的maven项目
- 1、加入jar包
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3</version>
</dependency>
- 2、在springmvc的配置文件中,加入如下配置:
<!--SpringMVC上传文件时,需要配置MultipartResolver处理器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8" />
<!-- 指定所上传文件的总大小不能超过200KB。注意maxUploadSize属性的限制不是针对单个文件,而是所有文件的容量之和 -->
<property name="maxUploadSize" value="200000"/>
<!-- 指定上传文件的临时路径 -->
<!-- <property name="uploadTempDir" value="uploadTempDirectory" /> -->
</bean>
- 3、创建Controller
package cn.van.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
/**
* Created by van on 2017-07-18.
*/
@Controller
@RequestMapping("/upload")
public class MultipartFileController {
//单文件上传
@RequestMapping("/toFileUpload")
public String toUpload(){
return "fileUpload/fileUpload";
}
@RequestMapping("fileUpload")
@ResponseBody
public String upload(MultipartFile multipartFile){
if(!multipartFile.isEmpty()){
//设置文件的保存路径
String filePath = "D:\\MultipartFile\\" + multipartFile.getOriginalFilename();
//转存文件
try {
multipartFile.transferTo(new File(filePath));
} catch (IOException e) {
e.printStackTrace();
}
}
return "success";
}
//多文件上传
@RequestMapping("/toFileUploadFiles")
public String toUploadFiles(){
return "fileUpload/fileUploadFiles";
}
@RequestMapping("fileUploadFiles")
@ResponseBody
//此处用@RequestParam("xx")来指定参数名,不加会报错
public String uploadFiles(@RequestParam("multipartFile") MultipartFile[] multipartfiles) throws IOException {
String savePath = "D:\\MultipartFile\\";
if(multipartfiles != null && multipartfiles.length != 0){
if(null != multipartfiles && multipartfiles.length > 0){
//遍历并保存文件
for(MultipartFile file : multipartfiles){
file.transferTo(new File(savePath + file.getOriginalFilename()));
}
}
}
return "success";
}
}
- 4、写两个简单的上传页面(单文件和多文件)
单文件:
<%@page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/WEB-INF/jsp/common/common.jsp"%>
<html>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<style type="text/css">
.upload {
margin-top: 100px;
margin-left: 100px;
text-align: center;
}
</style>
</head>
<body>
<h1 style="text-align: center;margin-top: 20px">test</h1>
<div>
<form class="upload" action="${path}/upload/fileUpload" method="post" enctype="multipart/form-data">
<p>
选择文件:<input type="file" name="multipartFile"/>
</p>
<p></p>
<p style="margin-top: 20px;">
<input style="" type="submit" value="上传并检测"/>
</p>
</form>
</div>
</body>
</html>
多文件:
<%@page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<%@include file="/WEB-INF/jsp/common/common.jsp"%>
<html>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<style type="text/css">
.upload {
margin-top: 100px;
margin-left: 100px;
text-align: center;
}
</style>
</head>
<body>
<h1 style="text-align: center;margin-top: 20px">test</h1>
<div>
<form class="upload" action="${path}/upload/fileUploadFiles" method="post" enctype="multipart/form-data">
<p>
选择文件:<input type="file" name="multipartFile"/>
<input type="file" name="multipartFile"/>
<input type="file" name="multipartFile"/>
</p>
<p></p>
<p style="margin-top: 20px;">
<input style="" type="submit" value="上传并检测"/>
</p>
</form>
</div>
</body>
</html>
5、访问页面,选择本地文件,上传成功。
Spring MVC - MultipartFile实现文件上传(单文件与多文件上传)的更多相关文章
- Spring MVC MultipartFile实现图片上传
<!--Spring MVC xml 中配置 --><!-- defaultEncoding 默认编码;maxUploadSize 限制大小--><!-- 配置Multi ...
- spring mvc源码-》MultipartReques类-》主要是对文件上传进行的处理,在上传文件时,编码格式为enctype="multipart/form-data"格式,以二进制形式提交数据,提交方式为post方式。
spring mvc源码->MultipartReques类-> MultipartReques类主要是对文件上传进行的处理,在上传文件时,编码格式为enctype="multi ...
- Spring MVC(十四)--SpringMVC验证表单
在Spring MVC中提供了验证器可以进行服务端校验,所有的验证都必须先注册校验器,不过校验器也是Spring MVC自动加载的,在使用Spring MVC校验器之前首先要下载相关的jar包,下面是 ...
- spring mvc 避免IE执行AJAX时,返回JSON出现下载文件
<!-- 避免IE执行AJAX时,返回JSON出现下载文件 --> <bean id="mappingJacksonHttpMessageConverter" c ...
- Spring MVC 用post方式提交表单到Controller乱码问题,而get方式提交没有乱码问题
在web.xml中添加一个filter,即可解决post提交到Spring MVC乱码问题 <!-- 配置请求过滤器,编码格式设为UTF-8,避免中文乱码--> <filter> ...
- spring mvc MultipartFile 上传文件错误解决
Field error in object 'xxxx' on field 'xxxx': rejected value [20129259128131.jpg]; codes [typeMismat ...
- spring mvc MultipartFile 上传文件 当文件较小时(10k) ,无法上传成功 。
<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器 --> <bean id="multipartResolver" cla ...
- spring MVC 项目 WEB-INF下的jsp不能加载css文件
一.项目目录 二.解决方法(已解决) 1. jsp文件加入 <link href="<c:url value="/css/main.css" />&qu ...
- Spring MVC框架下在java代码中访问applicationContext.xml文件中配置的文件(可以用于读取配置文件内容)
<bean id="propertyConfigurer" class="com.****.framework.core.SpringPropertiesUtil& ...
随机推荐
- noip第6课资料
- web-day10
第10章WEB10-requet&response篇 今日任务 登录系统后完成文件下载 商城系统注册功能. 教学导航 教学目标 掌握response设置响应头 掌握response重定向和转发 ...
- POJ1446 Girls and Boys
Girls and Boys Time Limit: 5000MS Memory Limit: 10000K Total Submissions: 12747 Accepted: 5678 D ...
- POJ2536 Gopher II(二分图最大匹配)
Gopher II Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9005 Accepted: 3724 Descrip ...
- JVM可支持的最大线程数
转微博,因为他也是转载 不知道原出处 一.认识问题: 首先我们通过下面这个 测试程序 来认识这个问题:运行的环境 (有必要说明一下,不同环境会有不同的结果):32位 Windows XP,Sun J ...
- 防Xss注入
转自博客:https://blog.csdn.net/qq_21956483/article/details/54377947 1.什么是XSS攻击 XSS又称为CSS(Cross SiteScrip ...
- unidbgrid列排序
unidbgrid列排序 1)指定列的.sortable:=true; 2)unidbgrid.columnsort事件添加如下代码: if SameText(Column.FieldName, 'I ...
- Android-WebView加载网络图片&网页
加载网络图片: 链接地址: http://bcs.link-us.com.cn/directBank/newHX149/directBank/h5/www/dist/img/e113.jpg 确保链 ...
- ASP.NET MVC5 高级编程-学习日记-第三章 视图
开发人员之所以花费大量时间来重点设计控制器和模型对象,是因为在这些领域中,精心编写的整洁代码是开发一个可维护Web应用程序的基础. 3.1 视图的作用 视图的职责是向用户提供用户界面.当控制器针对被请 ...
- 回头探索JDBC及PreparedStatement防SQL注入原理
概述 JDBC在我们学习J2EE的时候已经接触到了,但是仅是照搬步骤书写,其中的PreparedStatement防sql注入原理也是一知半解,然后就想回头查资料及敲测试代码探索一下.再有就是我们在项 ...