如何以angular2

时间:2017-03-25 02:15:21

标签: angular

我正在尝试从服务器下载音频文件。

import { Headers, Http, Response, RequestOptions, ResponseContentType } from '@angular/http';


downloadFile() {
    let downloadUrl = "https://firebasestorage.googleapis.com/v0/b/enoeasy-94b34.appspot.com/o/Davido%20-%20If.mp3?alt=media&token=603f3beb-2380-42a4-a119-7bbb34769d78"
    let headers = new Headers({ 'Content-Type': 'audio/mpeg', 'MyApp-Application' : 'AppName', 'Accept': 'audio/*' });
    let options = new RequestOptions({ headers: headers, responseType: ResponseContentType.Blob });

    return this.http.post(downloadUrl, '', options)
        .map(this.extractContent)
        .catch(this.handleError);
    }

private extractContent(res: Response) {
        let blob: Blob = res.blob();
        window['saveAs'](blob, 'test.mp3');
}

因此,当单击以下按钮时,我应该获取test.mp3文件。 不幸的是,这是有效的。

<button md-button (click)="downloadFile()"><i class="fa fa-download" aria-hidden="true" ></i> Download</button>

我在网上搜索了有关使用angular2下载文件的任何教程,无法找到任何有用的内容。

如何使用angular2下载文件?

1 个答案:

答案 0 :(得分:0)

请使用以下方式

downloadFile() {

    let downloadUrl = "https://firebasestorage.googleapis.com/v0/b/enoeasy-94b34.appspot.com/o/Davido%20-%20If.mp3?alt=media&token=603f3beb-2380-42a4-a119-7bbb34769d78";

var save = document.createElement('a');
            save.href = downloadUrl;
            save.target = '_blank';
            save.download = downloadUrl;
            var evt = document.createEvent('MouseEvents');
            evt.initMouseEvent('click', true, true, window, 1, 0, 0, 0, 0,
                false, false, false, false, 0, null);
            save.dispatchEvent(evt);
            (window.URL).revokeObjectURL(save.href);

}