如何在Angular与Spring Boot项目中实现PDF在新标签页打开而非下载
Angular 8 + Spring Boot 实现PDF新标签页直接打开(替代下载触发)
要实现PDF在浏览器新标签页直接预览而非触发下载,需要同时修改前端交互逻辑和后端响应头配置,以下是可直接运行的实现方案:
前端Angular代码修改
原有代码使用<a>标签的download属性,会强制触发文件下载,替换为直接打开Blob生成的临时URL即可:
this.service.FileDownload(event.fileId, headers).subscribe(response => { let dataType = response.type; let binaryData = []; binaryData.push(response); const fileURL = URL.createObjectURL(new Blob(binaryData, { type: dataType })); window.open(fileURL, '_blank'); })
注意:原有请求接口定义FileDownload无需修改,保持responseType: 'blob'配置即可
后端Spring Boot配置修改
需要在接口的响应头中设置Content-Disposition为inline,告知浏览器直接预览文件而非下载:
response.setHeader("Content-Disposition", String.format("inline; filename=\"%s\"", fileName));
额外注意:需确保接口返回的Content-Type正确为application/pdf,否则浏览器可能无法识别文件类型触发下载
内容的提问来源于stack exchange,提问作者zdnmn
相关产品推荐
相关产品推荐

