MultipartFile 是 Spring MVC 提供的一个接口,专门用于处理文件上传操作。它是 Spring 对 HTTP multipart 请求的封装。
- 基本概念
MultipartFile 代表客户端上传的文件,包含了文件的所有元数据和内容。它通常用于处理 HTML 表单中的文件上传字段。 - 主要方法
MultipartFile 常见方法:
- String getOriginalFilename(); //获取原始文件名
- void transferTo(File dest); //将接收的文件转存到磁盘文件中
- long getSize(); //获取文件的大小,单位:字节
- byte[] getBytes(); //获取文件内容的字节数组
- InputStream getInputStream(); //获取接收到的文件内容的输入流
3.使用示例
前端 HTML 表单
<form action="/upload" method="post" enctype="multipart/form-data">
<input type="text" name="username" />
<input type="file" name="file" />
<input type="submit" value="上传" />
</form>
后端 Controller
@PostMapping("/upload")
public Result upload(@RequestParam("username") String username,
@RequestParam("file") MultipartFile file) {
if (!file.isEmpty()) {
try {
// 获取文件信息
String originalName = file.getOriginalFilename();
String contentType = file.getContentType();
long size = file.getSize();
// 保存文件到服务器
file.transferTo(new File("/path/to/save/" + originalName));
return Result.success("文件上传成功");
} catch (IOException e) {
return Result.error("文件上传失败");
}
}
return Result.error("文件为空");
}
- 注意事项
4.1 表单配置:HTML 表单必须设置 enctype="multipart/form-data"
4.2 参数名称:@RequestParam 中的名称必须与前端表单字段名称一致
4.3 文件大小限制:可通过配置文件设置最大上传文件大小
4.4 异常处理:文件操作可能抛出 IOException,需要妥善处理
4.5 安全性:应验证文件类型和大小,防止恶意文件上传