[问题是,当从angular java接收ResponseEntity时,它以Blob的形式接收它,但是下载的Word不正确,它是带有正确File所在路径的单词
private aFile() {
this.rest.aFile(this.formData)
.subscribe(res => {
this.contenidoFile = res;
var blob = new Blob([this.contenidoFile], { type: 'application/octet-stream' });
saveAs(blob, "createdocument.doc");
}, (err) => {
console.error(err);
alert('Ha habido un error');
});
}
aFile(formData: FormData) {
return this.http.post(PATH_FILE, formData, {
responseType:'blob'
});
}
Java代码:
@PostMapping("/file")
public ResponseEntity<File> docFileV1(
@RequestParam("file") MultipartFile originalFile) {
return ResponseEntity.ok(docService.processDocFile(originalDocFile));
}
例如,原始Word的文本将是“你好,这是一个Word文档”,而角度下载的Word文档的文本是“ C:\ var \ tmp \ DocWork \ bcc272d8-fdac-4384-97bc-1fdc5dd5736b \ document.doc”
换句话说,我要下载的单词的路径已转换为单词,如何下载原始单词而不是其路径?
尝试使用此代码下载文件,而不使用saveAs:
var blob = new Blob([this.contenidoFile], { type: 'application/octet-stream' });
const e = document.createEvent("MouseEvents"),
a = document.createElement("a");
a.download = "data.docx";
a.href = window.URL.createObjectURL(blob);
a.dataset.downloadurl = ["application/octet-stream", a.download, a.href].join(":");
e.initEvent("click", true, false);
a.dispatchEvent(e);