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后端文件下载不起作用或损坏的问题。

相关内容

热门资讯

透视办法!wejoker免费脚... 透视办法!wejoker免费脚本(透视)真是存在有辅助下载(哔哩哔哩)wejoker免费脚本辅助器是...
透视策略!智星德州插件最新版本... 透视策略!智星德州插件最新版本更新内容详解(透视)真是是有辅助插件(哔哩哔哩)1、完成智星德州插件最...
透视举措!智星德州有脚本吗(透... 透视举措!智星德州有脚本吗(透视)本来真的是有辅助插件(哔哩哔哩)1、不需要AI权限,帮助你快速的进...
透视教材!约局吧游戏挂(透视)... 您好,约局吧游戏挂这款游戏可以开挂的,确实是有挂的,需要了解加去威信【136704302】很多玩家在...
透视办法!wepoker插件程... 透视办法!wepoker插件程序激活码(透视)总是有辅助辅助器(哔哩哔哩)1、点击下载安装,wepo...
透视课程!德州透视是真的假的(... 透视课程!德州透视是真的假的(透视)一直真的是有辅助工具(哔哩哔哩)亲,关键说明,德州透视是真的假的...
透视窍要!xpoker辅助怎么... 透视窍要!xpoker辅助怎么用(透视)其实真的有辅助修改器(哔哩哔哩)1、xpoker辅助怎么用公...
透视方式!德普之星辅助器app... 透视方式!德普之星辅助器app(透视)真是有辅助辅助器(哔哩哔哩)1、全新机制【德普之星辅助器app...
透视模板!佛手大菠萝13道挂哪... 透视模板!佛手大菠萝13道挂哪里(透视)好像是有辅助安装(哔哩哔哩)小薇(辅助器软件下载)致您一封信...
透视指南!wepoker正确养... 透视指南!wepoker正确养号方法(透视)本来有辅助插件(哔哩哔哩)1、该软件可以轻松地帮助玩家将...