下载来自Angular的Java REST API的.doc

问题描述 投票:0回答:1

[问题是,当从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”

换句话说,我要下载的单词的路径已转换为单词,如何下载原始单词而不是其路径?

angular typescript rest save-as restapi
1个回答
0
投票

尝试使用此代码下载文件,而不使用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);
© www.soinside.com 2019 - 2024. All rights reserved.