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

相关内容

热门资讯

技术分享,微扑克辅助器有用吗,... 您好,微扑克辅助器有用吗这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家...
切实教程,wpk透视挂下载,微... 您好,wpk透视挂下载这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在...
查到实测辅助,德州辅助app官... 查到实测辅助,德州辅助app官方最新版本介绍,德州扑克究竟有没有挂诀窍(都是有透视)是一款可以让一直...
总算了解!,wpk插件是真的吗... 总算了解!,wpk插件是真的吗,德扑之星到底有没有挂讲义(先前是有透视挂)主打本地运行的 AI 黑科...
推荐十款,wepoker辅助工... 您好,wepoker辅助工具这款游戏可以开挂的,确实是有挂的,需要了解加微【485275054】很多...
揭秘一下,wepoker透视辅... 您好:wepoker透视辅助软件这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很...
热门推荐,wepoker作弊辅... 热门推荐,wepoker作弊辅助挂教程,德扑之星透视挂大纲(切实是真的有辅助挂)AI 智能体黑科技再...
科技介绍,德扑之星插件视频,w... 科技介绍,德扑之星插件视频,wpk有挂吗攻略(总是真的有辅助挂)是一款可以让一直输的玩家,快速成为一...
玩家必看科普,德州辅助软件,智... 德州辅助软件AI 游戏攻略黑科技上线本地缓存功能,离线查阅能力开挂。提前下载对应游戏攻略数据包,断网...
玩家必备科技,wepoker作... 玩家必备科技,wepoker作弊挂是真的吗,微扑克透视软件绝活(最初真的有辅助器)AI 是一款可以让...