需求,解析前端传入的excep用MultipartFile接收
时间: 2024-09-23 22:03:41 浏览: 35
在Web开发中,当用户通过HTML表单向服务器发送文件数据时,通常会使用`<input type="file">`标签。前端会将选中的文件打包成一个名为`FormData`的对象,然后在Ajax请求中发送给后端。后端在Spring MVC环境中,可以用`@RequestParam`注解接收这种包含多个文件的数据,其中`@RequestParam("files") MultipartFile[] files`就是一个常见的用法。
前端发送的请求示例(JavaScript,使用axios库):
```javascript
const formData = new FormData();
for (let i = 0; i < files.length; i++) {
formData.append('file', files[i], files[i].name);
}
axios.post('/api/upload', formData)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
```
后端接收并解析前端发送的`MultipartFile[]`:
```java
@PostMapping("/upload")
public ResponseEntity<?> uploadFiles(@RequestParam("files") MultipartFile[] files) {
for (MultipartFile file : files) {
// 这里检查文件是否已上传,以及文件大小等信息
if (file.isEmpty() || !isValidFileSize(file.getSize())) {
return ResponseEntity.badRequest().body("Invalid file");
}
// 保存文件到服务器
saveUploadedFile(file);
}
return ResponseEntity.ok("Files uploaded successfully");
}
private void saveUploadedFile(MultipartFile file) {
try {
File targetFile = new File("path/to/save/" + file.getOriginalFilename());
Files.copy(file.getInputStream(), targetFile.toPath());
} catch (IOException e) {
log.error("Error saving file", e);
}
}
```
阅读全文