【发布时间】:2021-12-22 15:43:43
【问题描述】:
我正在尝试向我现有的 Angular 项目添加功能。 我需要添加上传、下载、重命名或删除 json 文件等功能。 所以我需要一些建议,因为我是新手,学习打字稿和角度的简单方法。 你能指导我吗
谢谢
【问题讨论】:
标签: json angular typescript
我正在尝试向我现有的 Angular 项目添加功能。 我需要添加上传、下载、重命名或删除 json 文件等功能。 所以我需要一些建议,因为我是新手,学习打字稿和角度的简单方法。 你能指导我吗
谢谢
【问题讨论】:
标签: json angular typescript
我可以回答下载 您需要执行三个步骤
1- 从角度发出正确的请求
download(): Observable<HttpResponse<Blob>> {
return this.http.get<Blob>(someURL, {
observe: 'response',
responseType: 'blob'
});}
2- 在您的后端,您需要设置带有响应的正确标头,此代码的 sn-p 与 .net4.7 一起使用以返回 csv 文件内容
var contents = new byte[0]; //set your file contents at this line
var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new
ByteArrayContent(contents)};
response.Content.Headers.ContentDisposition = new
ContentDispositionHeaderValue("attachment")
{
FileName = file.Name
}
response.Content.Headers.Add("Access-Control-Expose-Headers", "Content-
Disposition");
response.Content.Headers.ContentType = new MediaTypeHeaderValue ("text/csv");
return response;
3- 最后在angular端订阅http请求
const result
= this.service.download()
.subscribe(res=> {
let contentDisposition = res.headers.get('content-disposition');
let filename = contentDisposition.split(';')[1].split('filename')
[1].split('=')[1].trim();
let blob = res.body;
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = fileName;
document.body.appendChild(link);
link.click();
window.URL.revokeObjectURL(url);
link.parentNode.removeChild(link);
});
【讨论】: