接口使用MultipartHttpServletRequest接收文件,请求方应该如何存入文件?
时间: 2024-01-22 16:18:50 浏览: 178
如何HttpServletRequest文件对象并储存
如果请求方是后端服务,可以通过如下代码将文件存入本地磁盘:
```java
@PostMapping("/upload")
public String uploadFile(MultipartHttpServletRequest request) {
// 获取文件
Iterator<String> iterator = request.getFileNames();
while (iterator.hasNext()) {
String fileName = iterator.next();
MultipartFile file = request.getFile(fileName);
// 存储文件到磁盘
try {
String filePath = "D:/uploads/" + file.getOriginalFilename();
file.transferTo(new File(filePath));
} catch (IOException e) {
e.printStackTrace();
return "上传失败";
}
}
return "上传成功";
}
```
上述代码中,`MultipartHttpServletRequest` 是 Spring MVC 框架提供的用于处理文件上传的类。通过 `getFileNames()` 方法获取所有文件名,然后遍历获取每个文件并存储到磁盘上。`file.transferTo()` 方法将文件保存到指定的目录下。
需要注意的是,需要在 `application.properties` 中配置上传文件大小限制等相关参数:
```
spring.servlet.multipart.max-file-size=10MB # 最大文件大小
spring.servlet.multipart.max-request-size=10MB # 最大请求文件大小
```
另外,可以在接口中添加校验文件类型、大小等逻辑,以确保上传文件符合要求,避免安全问题。
阅读全文