ich an einer Aufgabe arbeite, in dem ich einen Bericht in xlsx-Format herunterladen müssen. Die Reportdatei wurde erfolgreich vom Server generiert und wird auch vom Client (aurelia-http-client) empfangen, aber ich weiß nicht, wie ich mit dem Download weiter gehen soll.Download Excel-Datei über aurelia-http-Client
1
A
Antwort
0
ich so etwas wie in dieser Antwort https://stackoverflow.com/a/30270714/6677648
tun würde ... das wie ein response interceptor in Aurelia wie dies in etwas enden würde:
.withResponseType('blob')
.withInterceptor({
response(message) {
var defaultFileName = "default.txt";
var disposition = message.headers.headers['content-disposition']?message.headers.headers['content-disposition']:message.headers.headers['Content-Disposition'];
if (disposition) {
var match = disposition.match(/.*filename=\"?([^;\"]+)\"?.*/);
if (match[1])
defaultFileName = match[1];
}
defaultFileName = defaultFileName.replace(/[<>:"\/\\|?*]+/g, '_');
if (navigator.msSaveBlob)
return navigator.msSaveBlob(message.response, defaultFileName);
var blobUrl = window.URL.createObjectURL(message.response);
var anchor = document.createElement('a');
anchor.download = defaultFileName;
anchor.href = blobUrl;
document.body.appendChild(anchor);
anchor.click();
document.body.removeChild(anchor);
}
})
0
Helo mit .withInterceptor() wurde erzeugt Fehler In der Antwort ändern Sie es, um den Fehler in keiner Antwort zu beheben und mehrere Dateien gleichzeitig zu entladen.
getLogsCsv(param) {
this.http.configure(config => {
config
.withResponseType('blob');
});
return this.http.get("/admin/api/logs" + param)
.then(response => {
if (response.statusCode == 200) {
var defaultFileName = "FileName.csv";
var blobUrl = window.URL.createObjectURL(response.response);
var anchor = document.createElement('a');
anchor.download = defaultFileName;
anchor.href = blobUrl;
document.body.appendChild(anchor);
anchor.click();
document.body.removeChild(anchor);
return response.content;
} else {
console.log('response was not ok.');
console.log(response);
}
})
.catch(error => {
console.log(error);
});
}
0
Ich habe die downloadjs Bibliothek verwendet. Installieren Sie die Bibliothek, fügen Sie es zu Ihrem aurelia.json
und fügen Sie dann
import * as download from 'downloadjs'
Dann wird Ihr Code wie folgt schreiben:
this.httpClient.fetch('your/url/here')
.then((response: Response) => response.blob())
.then((blob: Blob) => download(blob, 'filename.extension', 'mime type of the file'));
Und voila, wird die Datei heruntergeladen werden.
Verwandte Themen
- 1. Download Web-Inhalte über CMD
- 2. Excel-Download über Java-Servlet
- 3. PHP Header() Funktionsproblem über Download-Datei
- 4. Download .torrent-Datei über PHP, ungültige Bencoding
- 5. Erzwingen einer Datei zum Download über JQuery
- 6. PHP-Download von Remote-Server über sftp
- 7. Benachrichtigung über den Download von Apps über eine Anzeige?
- 8. Download-Manager - Limit Download-Geschwindigkeit
- 9. PHP File Download mit POST-Daten über jQuery AJAX
- 10. kann nicht Upload/Download von Dateien über Google Drive api
- 11. Wie erzwinge ich den Download einer Datei über Flysystem?
- 12. Wie bekomme ich eine Artefakt-Download-URL über Maven API?
- 13. Set Dateinamen, wenn eine Datei über Javascript Download
- 14. Download-Manager, der Download fortsetzen kann
- 15. Download button
- 16. Pyscripter Download
- 17. Amazon S3 Download Authentifizierung
- 18. Download-Manager in Java
- 19. cake.php Datei download link
- 20. Laravel AWS Download
- 21. Browser Download abgeschlossen Ereignis
- 22. ASP.NET Datei Download Problem
- 23. Android Download Manager abgeschlossen
- 24. Trigger-Download von Blob
- 25. Datenvisualisierungslösung für eine Download-Site
- 26. Maptile - Download mit Koordinaten png
- 27. PHPExcel Download-Datei
- 28. SQL Server 2016 RTM Download
- 29. HTML5 JavaScript Download Attribut
- 30. Download von Download Manager android fortsetzen, wenn der Download fehlgeschlagen ist
Es funktioniert! Vielen Dank! – Lumdeia