簡體   English   中英

通過來自web api c#的響應下載xml文件角度

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM