【问题标题】:Angular upload/download Rename/delete json file角度上传/下载重命名/删除json文件
【发布时间】:2021-12-22 15:43:43
【问题描述】:

我正在尝试向我现有的 Angular 项目添加功能。 我需要添加上传、下载、重命名或删除 json 文件等功能。 所以我需要一些建议,因为我是新手,学习打字稿和角度的简单方法。 你能指导我吗

谢谢

【问题讨论】:

    标签: json angular typescript


    【解决方案1】:

    我可以回答下载 您需要执行三个步骤

    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);
       });
    

    【讨论】:

    • 谢谢先生,但看起来有点复杂,实际上我的项目是一个拼字游戏,我必须通过HTML上传新字典,我可以修改字典的名称,删除它或下载我计算机上的 JSON 副本。我可以做一些比这更简单的事情吗?我不必只修改名称或按原样下载 JSON 内容吗?再次感谢您
    • 我想通过下载来下载文件,显然你只需要从服务器发送和获取数据,这确实更简单
    • 您是否提供了解决问题的好方法?我要求像你这样有经验的人不要犯初学者的错误
    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 2016-12-20
    • 2015-02-25
    • 2015-03-09
    • 2017-12-30
    • 2014-08-28
    • 1970-01-01
    相关资源
    最近更新 更多