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代码
<%--
上传文件的表单前提
- 提交方式必须是post
- 表单的类型必须:multipart/form-data, 多功能表单数据
- 必须有一个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";
}
posted on 2019-06-29 09:34 COMPLEX-B 阅读(2882) 评论(1) 编辑 收藏 举报