通过网络 api c# 的响应下载 xml 文件 angular
Download xml file angular by response from web api c#
我想从数据库下载 xml 文件。 byte[] 中的 Web api (C#) return 文件。我如何从客户端站点 (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);
我想从数据库下载 xml 文件。 byte[] 中的 Web api (C#) return 文件。我如何从客户端站点 (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);