【问题标题】:Downloading Image in Angular 4在 Angular 4 中下载图像
【发布时间】:2018-09-04 11:10:52
【问题描述】:

我正在尝试以角度 4 从 UI 下载图像。到目前为止,我已应用以下代码下载图像:

DownloadImageFromUrl(imageUrl) {
imageUrl = this.ImagePath + imageUrl;
this.Service.GetImage(imageUrl, { responseType: ResponseContentType.Blob })

  .map(res => {
    return new Blob([res._body], {
      type: res.headers.get("Content-Type")
    });
  })
  .map(blob => {
    var urlCreator = window.URL;
    return 
    this.sanitizer.bypassSecurityTrustUrl(urlCreator.createObjectURL(blob));
  })
 } 

在“GetImage”函数之后:

GetImage(url: string, options?: RequestOptionsArgs): Observable<any> {
    return this._http.get(url, this.addWithImage(options)).map((res) => res.json());
}

private addWithImage(options?: RequestOptionsArgs): RequestOptionsArgs {
    // ensure request options and headers are not null
    options = options || new RequestOptions();
    options.headers = options.headers || new Headers();

    // add authorization header with token
    const token = 'XXXXXXXX';
    if (token) {
        options.headers.append('Authorization', 'Bearer ' + token);
        options.headers.append('Content-Type', 'image/jpg');
    }
    return options;
}

请告诉我这段代码有什么问题?

【问题讨论】:

    标签: angular angular4-forms


    【解决方案1】:

    我不确定它是否会起作用,我现在无法测试它,但试一试:

    DownloadImageFromUrl(imageUrl) {
     imageUrl = this.ImagePath + imageUrl;
     var link = document.createElement("a");
     link.setAttribute("href", imageUrl);
     link.setAttribute("download", 'coolNameForTheFile.jpg');
     link.innerText = "click";
     link.click();
    }
    

    首先在 Chrome 中试用。我在 Firefox 中遇到了问题。

    【讨论】:

    • 感谢您的回答。它正在同一个窗口中打开文件。我不想打开它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 2018-02-04
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    相关资源
    最近更新 更多