springMVC文件上传配置

1、文件上传
a、引入依赖
b、spring-mvc.xml 配置文件
c、页面配置
url:"${pageContext.request.contextPath}/user/testResponseBody",
data:{},
type:"post",
dataType:"json",
success:function(data){
alert(data[0].username);
alert(data[1].username);
}
});
d. 引入静态资源后,必须静态资源放行

<mvc:resources mapping="/js/*" location="/js/"></mvc:resources>
引入fileUpload会自动依赖commons-io
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 设置上传文件的最大尺寸为5MB -->
<property name="maxUploadSize">
<value>5242880</value>  // 必要步骤*********************
</bean>

d、controller代码
<%--
上传文件的表单前提

  1. 提交方式必须是post
  2. 表单的类型必须:multipart/form-data, 多功能表单数据
  3. 必须有一个type=file的表单元素
    --%>
<form action="${pageContext.request.contextPath}/user/upload" method="post"
enctype="multipart/form-data">
<input type="text" name="username"> <br>
<input type="file" name="upload"><br>
<input type="submit" value="上传">
</form>

/**

  • 声明参数 变量接收数据

/
@RequestMapping("/upload")
public String upload(String username , MultipartFile upload, HttpServletRequest request){
// System.out.println(username);
//1. 目标路径
//获取项目运行的路径
String realPath = request.getSession().getServletContext().getRealPath("/upload");
//判断该路径是否存在
File realFile = new File(realPath);
if(!realFile.exists()){
realFile.mkdirs();
} /
/2. 获取唯一的文件名称(包含扩展名)
String uuidName = UUID.randomUUID().toString().replace("-", "");
//获取扩展名: 获取文件名
//获取真实的文件名
String originalFilename = upload.getOriginalFilename();
//截取字符串,获取文件的扩展名
String extendName = originalFilename.substring(originalFilename.lastIndexOf("."));
System.out.println(extendName);
//唯一的文件名
String fileName = uuidName + extendName;
System.out.println(fileName);
//文件上传
//transferTo: 执行文件上传
//参数file:目录文件
try {
upload.transferTo(new File(realFile, fileName));
} catch (IOException e) {
e.printStackTrace();
} r
eturn "show";
}

原文地址:https://www.cnblogs.com/zhz-8919/p/11105740.html