用文件将数据从Angular传递到Spring Webflux的最佳方式是什么?
我的目标是使用SpringWebFlux从Angular获取带有文件的object用文件将数据从Angular传递到Spring Webflux的最佳方式是什么?,angular,spring-webflux,Angular,Spring Webflux,我的目标是使用SpringWebFlux从Angular获取带有文件的objectMusic,并将其保存在DB中(文件名为byte[])。在角度方面,我使用FileReader将文件转换为base64,并将其发送到Music类对象中 reader.readAsDataURL(this.fileToUpload); reader.onload = () => { array = reader.result; music.musicfile = array; this.musicS
Music
,并将其保存在DB中(文件名为byte[]
)。在角度方面,我使用FileReader将文件转换为base64,并将其发送到Music类对象中
reader.readAsDataURL(this.fileToUpload);
reader.onload = () => {
array = reader.result;
music.musicfile = array;
this.musicService.saveMusic(music).subscribe(data => console.log(data));
};
服务台
saveMusic(music: Music): Observable<any> {
return this.http.post<Music>(`${this.baseUrl}` + 'addMusic', music);
}
saveMusic(音乐:音乐):可观察{
返回this.http.post(`this.baseUrl}`+'addMusic',music);
}
在后端,我解码文件并将其保存在DB中,如下所示:
@PostMapping("/music/addMusic")
public Mono<Music> addMusicGet(@RequestBody MusicGet musicGet){
Music music = new Music(musicGet);
musicService.decode64Music(music,musicGet.getMusicfile());
return musicService.addMusic(music);
}
public void decode64Music(Music music, String url) {
music.setMusicfile(Base64.getMimeDecoder().decode(url));
}
@PostMapping(“/music/addMusic”)
公共Mono addMusicGet(@RequestBody MusicGet MusicGet){
音乐=新音乐(musicGet);
musicService.Decode64音乐(music,musicGet.getMusicfile());
返回音乐服务。添加音乐(音乐);
}
公共音乐(音乐、字符串url){
setMusicfile(Base64.getMimeDecoder().decode(url));
}
上面的代码可以工作,但我怀疑这是一个好的解决方案。
有没有处理这个问题的标准方法?我以前也尝试过在Angular中使用formData,但控制台只显示了uknown http错误响应