SpringMVC-文件上传
文件上传也是获得请求数据的一种,但是获得客户端的数据并不是一个普通的类型。
文件上传步骤
- 导入fileupload和io的包坐标
- 配置文件上传解析器
- 编写文件上传代码
1. 导入坐标
<!--fileupload、io 文件上传-->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
2. 配置文件上传解析器
value设置过大可能会导致超出tomcat限制导致文件为null
<!--文件上传解析器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--上传文件总大小-->
<property name="maxUploadSize" value="102400" />
<!--上传单个文件大小-->
<property name="maxUploadSizePerFile" value="102400" />
<!--上传文件默认编码-->
<property name="defaultEncoding" value="UTF-8" />
</bean>
3. 编写文件上传代码
新建一个jsp文件为upload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
<title>上传文件</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/upload" method="post" enctype="application/x-www-form-urlencoded">
文件<input type="file" name="file"/>
<input type="submit" value="提交">
</form>
</body>
</html>
编写Controller中文件获得方法
// 上传文件
@ResponseBody
@RequestMapping("/upload")
public String upload(@RequestParam(value = "file",required = false) MultipartFile file) throws IOException {
if(file == null){
return "抱歉,您没有传入文件";
}else {
System.out.println(file);
// 获取上传文件名称
String originalFilename = file.getOriginalFilename();
// 存储
file.transferTo(new File("文件路径"+originalFilename));
return "上传文件成功!";
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端