我想從資料庫下載 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);
});
請盡快幫助我。謝謝 :-)
uj5u.com熱心網友回復:
該字串以 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);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/485634.html
下一篇:CircleCI角度測驗失敗
