angular如何上传MultipartFile
时间: 2023-07-18 19:37:48 浏览: 51
在Angular中,我们可以使用HttpClient模块来上传MultipartFile。具体步骤如下:
1. 在组件中引入HttpClient模块
```
import { HttpClient } from '@angular/common/http';
```
2. 在组件中构造函数中注入HttpClient
```
constructor(private http: HttpClient) { }
```
3. 创建一个FormData对象,并将文件添加到其中
```
const formData = new FormData();
formData.append('file', file);
```
其中,file是一个MultipartFile对象,可以通过input标签的change事件获取到。
4. 发送POST请求,将FormData对象上传到服务器
```
this.http.post(url, formData).subscribe(
res => console.log(res),
err => console.log(err)
);
```
其中,url是上传文件的接口地址。
完整的代码如下:
```
import { Component } from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Component({
selector: 'app-upload',
template: '<input type="file" (change)="onFileSelected($event)">',
})
export class UploadComponent {
constructor(private http: HttpClient) { }
onFileSelected(event) {
const file = event.target.files[0];
const formData = new FormData();
formData.append('file', file);
this.http.post('url', formData).subscribe(
res => console.log(res),
err => console.log(err)
);
}
}
```
注意:在发送FormData对象时,需要设置请求头Content-Type为'multipart/form-data'。你可以通过HttpHeaders来设置请求头,如下所示:
```
const headers = new HttpHeaders();
headers.append('Content-Type', 'multipart/form-data');
this.http.post('url', formData, {headers: headers}).subscribe(
res => console.log(res),
err => console.log(err)
);
```