springboot multipartfile封装到对象中,前端如何传参
时间: 2024-04-12 07:27:21 浏览: 138
在前端将 MultipartFile 封装到对象中并传递给后端时,可以使用 FormData 对象来构造请求体。以下是一个示例代码,展示了如何将 MultipartFile 封装到对象中并发送给后端:
```javascript
function uploadFile() {
var formData = new FormData();
var fileInput = document.getElementById("fileInput"); // 假设有一个文件上传的输入框
var file = fileInput.files[0]; // 获取选择的文件
var type = "some type"; // 获取你需要传递的字符串参数
formData.append("file", file);
formData.append("type", type);
fetch("/upload", {
method: "POST",
body: formData
})
.then(response => response.text())
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
}
```
在上述示例中,我们使用了 `FormData` 对象来构造请求体,并通过 `append` 方法将文件和类型参数添加到其中。然后,使用 `fetch` 函数发送 POST 请求给后端的 `/upload` 接口。
在后端的 Spring Boot 控制器中,接收参数的对象可以定义如下:
```java
public class UploadRequest {
private MultipartFile file;
private String type;
// 添加 getter/setter 方法
}
```
然后,在接口方法中使用该对象作为参数:
```java
@PostMapping("/upload")
public String uploadFile(@ModelAttribute UploadRequest request) {
MultipartFile file = request.getFile();
String type = request.getType();
// 处理文件上传逻辑和其他业务逻辑
return "success";
}
```
通过以上方式,前端可以将 MultipartFile 封装到对象中,并将其作为请求体通过 POST 请求发送给后端。后端的 Spring Boot 控制器会自动将请求体中的参数映射到 `UploadRequest` 对象的对应属性中,从而方便你处理文件上传和其他业务逻辑。
阅读全文