Angular前端Spring后端文件下载不起作用或损坏
创始人
2024-10-29 02:00:44
0
  1. 确认后端服务器是否正确设置了文件下载响应头,示例代码如下:
@GetMapping("/downloadFile")
public ResponseEntity downloadFile(@RequestParam String fileName) throws IOException {

    Resource resource = fileService.loadFileAsResource(fileName);

    return ResponseEntity.ok()
        .contentType(MediaType.parseMediaType("application/octet-stream"))
        .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=\"" + resource.getFilename() + "\"")
        .body(resource);
}

其中,loadFileAsResource()方法需要返回一个实现了 Spring 的Resource接口的文件资源对象。

  1. Angular前端中需要使用文件下载的时候,需要将响应数据以 blob 的形式接收,并使用 window.URL.createObjectURL()将其转换为文件 URL,示例代码如下:
downloadFile(fileName: string): void {
    this.fileService.downloadFile(fileName).subscribe(data => {
      let blob = new Blob([data], { type: 'application/octet-stream' });

      // 使用 createObjectURL 将响应数据转换为 URL
      let url = window.URL.createObjectURL(blob);
      let a = document.createElement('a');
      a.href = url;
      a.download = fileName;
      a.click();
      window.URL.revokeObjectURL(url);
    });
}

其中,downloadFile()方法需要返回一个Observable对象,将响应数据以二进制数据流的形式传递给subscribe()响应函数。

通过以上两步操作,应该可以解决Angular前端Spring后端文件下载不起作用或损坏的问题。

相关内容

热门资讯

必备攻略!竞技联盟透视插件,w... 《必备攻略!竞技联盟透视插件,wepoker透视最简单三个步骤,介绍教程(有挂辅助)》 wepoke...
透视ai代打!德普之星app安... 透视ai代打!德普之星app安卓版破解版(透视)一直存在有挂(详细辅助2025新版教程)1、超多福利...
透视安装!wepoker开脚本... 透视安装!wepoker开脚本视频(透视)竟然真的有挂(详细辅助安装教程);1、这是跨平台的黑科技,...
科技分享!wepoker手机助... 科技分享!wepoker手机助手,wepoker透视底牌脚本,新2025版(有挂攻略);支持2-10...
透视总结!poker worl... 透视总结!poker world辅助(透视)都是有挂(详细辅助2025新版);1、实时开挂更新:用户...
一分钟揭秘!约局吧德州有挂吗,... 一分钟揭秘!约局吧德州有挂吗,拱趴大菠萝万能挂图解,详细教程(有挂软件);致您一封信;亲爱拱趴大菠萝...
透视了解!wepoker透视脚... 透视了解!wepoker透视脚本(透视)都是存在有挂(详细辅助透牌教程)1、用户打开应用后不用登录就...
重大通报!aa poker辅助... 这是一款非常优秀的aa poker辅助 ia辅助检测软件,能够让你了解到aa poker辅助中牌率当...
查到实测辅助!hhpoker是... 您好,菠萝辅助器免费版的功能介绍这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】...
透视了解!wepoker有没有... 透视了解!wepoker有没有机器人(透视)果然存在有挂(详细辅助软件教程);1、系统规律教程、辅助...