Set Dateiname beim Download via blob in Winkel-5
Unten ist mein Typoskript-code für den download-Datei Vom API -
DownloadLM() {
var ID= sessionStorage.getItem("UserID");
return this.http.get(this.baseurl + 'api/DownloadFiles/DownloadLM/' + ID,
{
headers: {
'Content-Type': 'application/json'
},
responseType: 'arraybuffer'
}
)
.subscribe(respData => {
this.downLoad(respData, this.type);
}, error => {
});
}
downLoad(data: any, type: string) {
var blob = new Blob([data], { type: type.toString() });
var url = window.URL.createObjectURL(blob);
var pwa = window.open(url);
if (!pwa || pwa.closed || typeof pwa.closed == 'undefined') {
alert('Please disable your Pop-up blocker and try again.');
}
}
Dies ist gut, um download Excel-Datei , aber es gibt einen zufälligen Namen für die Datei, die ich nicht will , ich will, die Datei Namen meiner Wahl, wenn es herunterladen ,
Wo kann ich einstellen, dass Datei-name hier ? jede Eigenschaft der Blob ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, dass der exakte Dateiname der hochgeladenen Datei, legen Sie eine benutzerdefinierte Kopfzeile den Dateinamen von gesicherten API-stream.
Können Sie es verwenden, wie diese: meine Excel-API-Antwort-Header:
Service.ts
Komponente.ts
Können Sie den download-Attribut auf den Dateinamen, den Sie möchten, setzen Sie das href auf die Objekt-url, und dann rufen Sie einfach klicken Sie auf
Da einige gefragt, für eine version mit Versprechen, so können Sie erwarten und async:
Teil 1: Holen Sie sich die Blob Vom server:
Teil 2: Auszug HttpResponse und liefern Sie an die Benutzer:
Teil 3: Kombinieren Sie beides:
Teil 4: server: