我使用Spring MVC,我想下载pdf。我不想显示以下对话窗口
我不想表示“你想打开还是保存.....?”。 我想直接在屏幕上打开文件。
我写了以下方法:
@RequestMapping(value="/visualizarmanual", method=RequestMethod.POST)
public HttpEntity<byte[]> descargarManual(@RequestParam("directorioDocumentacion") String directorioDocumentacion,
@RequestParam("nombreDocumento") String nombreDocumentoP,HttpServletRequest request,
HttpServletResponse resp) throws IOException, Exception {
// convert JSON to Employee
logger.info("DocumentacionController descargarManual principio ");
String nombreDocumento = "springEcalcpAdmin.properties";
logger.info("DocumentacionController descargarManual nombreDocumento "+nombreDocumento);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.parseMediaType("application/plain"));
headers.setContentDispositionFormData(nombreDocumento, nombreDocumento);
byte[] documentBody = crearFichero(request,nombreDocumento);
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0");
ResponseEntity<byte[]> response = new ResponseEntity<byte[]>(documentBody, headers, HttpStatus.OK);
return response;
}
有没有办法下载文件而不问?
答案 0 :(得分:0)
您可以通过内容处理来解决此问题。
如果要像网页一样打开文件,则需要将其指定为内联。
Content-Disposition: inline
如果要下载文件,则需要将其指定为附件。如果要指定下载文件的名称,可以使用filename,但这不是必需的。
Content-Disposition: attachment; filename="filename.jpg"
你可以在这里看到更多
https://developer.mozilla.org/es/docs/Web/HTTP/Headers/Content-Disposition