我正在尝试从服务器下载音频文件。
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下载文件?
答案 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);
}