使用Angular和Spring引导在新选项卡中从Blob打开图像

时间:2018-09-28 16:47:44

标签: angular spring-boot

我正在使用Angular 4和Spring Boot,并尝试在新标签中打开数据库中的图像。但是问题是它可以在Firefox中运行,但不能在Chrome中运行。这是我的代码:

后端:

@GetMapping("/anexos/view/{id}")
@Timed
public void viewAnexo(HttpServletResponse response, @PathVariable("id") Long id) throws IOException {
    log.debug("REST request to view anexo: {}", id);
    AnexoDTO anexoDTO = anexoService.findOne(id);
    if (anexoDTO != null) {
        ResponseEntity<InputStreamResource> responseEntity = preparAnexo(anexoDTO);
        response.addHeader(CONTENT_DISPOSITION, "inline; filename=" + anexoDTO.getTxNomeArquivo());
        writeAnexoBytes(responseEntity, response);
        response.flushBuffer();
    }
}

前端:

viewAnexo(id: number, name: string){
    const element = document.createElement('a');
    const url = this.viewUrl+'/'+id;
    element.setAttribute('href', url);
    element.setAttribute('target', '_blank');
    element.style.display = 'none';
    document.body.appendChild(element);
    element.click();
    document.body.removeChild(element);
}

当我尝试在Firefox中查看图像时,所有显示均正确。但是在Chrome中,新标签如下:

Image in Chrome

我的问题在哪里?

0 个答案:

没有答案