Bootstrap 在angular中使用blob下载不同的类型

kkih6yb8  于 2023-06-20  发布在  Bootstrap
关注(0)|答案(1)|浏览(139)

我已经写了代码来保存PDF文件在Angular,但当我试图保存JPG图像格式,它不显示下载选项。为什么?

downloadfile(type: string){

    let thefile = {};
    this.pservice.downloadfile(this.rundata.name, type)
        .subscribe(data => thefile = new Blob([data], { type: "application/octet-stream" }), //console.log(data),
                    error => console.log("Error downloading the file."),
                    () => console.log('Completed file download.'));

    let url = window.URL.createObjectURL(thefile);
    window.open(url);
}
pieyvz9o

pieyvz9o1#

我认为是您指定的Blob构造函数MIME类型的问题。在您的代码中,您使用“application/octet-stream”作为MIME类型,这是一种通用的二进制数据类型。浏览器可能无法将此MIME类型识别为有效的图像格式,从而导致不显示下载选项。
你应该为你下载的图像格式指定正确的MIME类型。对于JPG图像,MIME类型为“image/jpeg”。
请修改您的代码

downloadfile(type: string) {
  let thefile: Blob;
  this.pservice.downloadfile(this.rundata.name, type)
    .subscribe(
      data => {
        thefile = new Blob([data], { type: "image/jpeg" });
        let url = window.URL.createObjectURL(thefile);
        window.open(url);
      },
      error => console.log("Error downloading the file."),
      () => console.log('Completed file download.')
    );
}

相关问题