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

相关内容

热门资讯

推荐几款新版!八闽十三水破解版... 推荐几款新版!八闽十三水破解版辅助(辅助挂)uupoker有透视吗(从来真的有挂);1、这是跨平台的...
免费测试版!如何在哈灵上作弊(... 免费测试版!如何在哈灵上作弊(辅助挂)wepoker有辅助功能吗(竟然真的是有挂);亲,有的,ai轻...
最新通报!微信小程序辅助有哪些... 最新通报!微信小程序辅助有哪些(辅助挂)wepoker国外版透视(起初真的是有挂)是一款可以让一直输...
我来分享!道游互娱辅助(辅助挂... 我来分享!道游互娱辅助(辅助挂)wepoker有辅助插件吗(从前真的有挂);道游互娱辅助简单的灵活控...
一分钟揭秘!潮友会辅助器(辅助... 【福星临门,好运相随】;一分钟揭秘!潮友会辅助器(辅助挂)微扑克游戏辅助器(都是有挂);暗藏猫腻,小...
记者揭秘!家乡大二有没有辅助(... 记者揭秘!家乡大二有没有辅助(辅助挂)来玩app破解版(确实是真的有挂),家乡大二有没有辅助是用手机...
一分钟了解!上饶中至能操控吗(... 一分钟了解!上饶中至能操控吗(辅助挂)pokemmo修改器手机版(确实真的是有挂);小薇(透视辅助)...
总算了解!九游辅助真的假的(辅... 总算了解!九游辅助真的假的(辅助挂)wepoker辅助分析器(好像有挂);详细九游辅助真的假的攻略(...
教学盘点!拱趴大菠萝修改器(辅... 您好,拱趴大菠萝修改器这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家在...
查到实测辅助!红中血流攻略(辅... 查到实测辅助!红中血流攻略(辅助挂)wpk模拟器多开(原来是真的有挂)是一款可以让一直输的玩家,快速...