Error: you are not receiving a MultipartFile
Error: you are not receiving a MultipartFile
我在 java 中有一个必须接收 MultipartFile 的 REST 服务,但它给出了一个错误,它说它不是来自 angular 的 MultipartFile。我留下代码看看有没有人知道是什么问题...
Angular 8:
sendFile(data: File): Observable<any>{
const headers = new HttpHeaders().set('Content-Type', 'text/html; charset=utf-8');
return this.http.post('http://localhost:8080/v1/on/file', data,{headers,responseType: 'text'})
.pipe(
tap(_ => this.log('send file')),
catchError(this.handleError('not send file', []))
);
}
Java:
@RequestMapping("/file")
public MultipartFile filev1(
@RequestParam("file") MultipartFile file){
service.filereturn(file);
return file;
}
您必须将其作为 FormData 传递,并且不需要在请求中指定 Content-Type headers:
例如:
sendFile(data: File): Observable<any>{
var _formData = new FormData();
_formData.append('file', data);
return this.http.post('http://localhost:8080/v1/on/file', _formData, { headers, responseType: 'text'})
.pipe(
tap(_ => this.log('send file')),
catchError(this.handleError('not send file', []))
);
}
我在 java 中有一个必须接收 MultipartFile 的 REST 服务,但它给出了一个错误,它说它不是来自 angular 的 MultipartFile。我留下代码看看有没有人知道是什么问题...
Angular 8:
sendFile(data: File): Observable<any>{
const headers = new HttpHeaders().set('Content-Type', 'text/html; charset=utf-8');
return this.http.post('http://localhost:8080/v1/on/file', data,{headers,responseType: 'text'})
.pipe(
tap(_ => this.log('send file')),
catchError(this.handleError('not send file', []))
);
}
Java:
@RequestMapping("/file")
public MultipartFile filev1(
@RequestParam("file") MultipartFile file){
service.filereturn(file);
return file;
}
您必须将其作为 FormData 传递,并且不需要在请求中指定 Content-Type headers:
例如:
sendFile(data: File): Observable<any>{
var _formData = new FormData();
_formData.append('file', data);
return this.http.post('http://localhost:8080/v1/on/file', _formData, { headers, responseType: 'text'})
.pipe(
tap(_ => this.log('send file')),
catchError(this.handleError('not send file', []))
);
}