[英]Download file with filesaver.js with angularJS from web api response c#
[英]Download xml file angular by response from web api c#
我想從數據庫下載 xml 文件。 Web api (C#) 在 byte[] 中返回文件。 如何讀取這些字節並將其從客戶端站點(Angular)轉換為 xml 文件? 我嘗試了 blob 和其他東西,但是當我打開下載的 xml 文件時,會出現如下奇怪的文本:
"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxYdHJhUmVwb3J0c0xheW91dFNlcmlhbGl6ZXIgU2VyaWFsaXplclZlcnNpb249IjIwLjIuNC4wIiBSZWY9".
但我想得到這樣的xml文件:
<?xml version="1.0" encoding="utf-8"?>
...
我在 Angular 中的代碼:
getExportData(id: string): Observable<any> {
const url = this.buildUrl('/ExportToXML/' + id);
return this.http.get(url, { responseType: 'blob' });
}
this.service.getExportData(item.Id)
.subscribe((response) => {
const element = document.createElement('a');
const blob = new Blob([response], { type: 'text/xml' });
const url = URL.createObjectURL(blob);
element.href = url;
element.setAttribute('download', 'acl.xml');
document.body.appendChild(element);
element.click();
}, error => {
console.log(error);
});
請盡快幫助我。 謝謝 :-)
該字符串以 base64 格式返回。 您需要從 base64 解碼它。 當我解碼您提供的示例字符串時,我得到
<?xml version="1.0" encoding="utf-8"?><XtraReportsLayoutSerializer SerializerVersion="20.2.4.0" Ref=
您可以使用atob()
javascript 函數來解碼數據。
var decoded = atob("PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjxYdHJhUmVwb3J0c0xheW91dFNlcmlhbGl6ZXIgU2VyaWFsaXplclZlcnNpb249IjIwLjIuNC4wIiBSZWY9");
console.log(decoded);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.