나는 제트를 사용하여 보고서를 생성하는 방법을 가지고 그 사용자에 대한 파일 다운로드 대화 상자가 표시됩니다 : 텍스트 문서로하고 바이트 않고,다운로드 할 xls 파일을 손상시키는 ExternalContext 호출을 수정하는 방법은 무엇입니까?
FacesContext facesContext = FacesContext.getCurrentInstance();
ExternalContext externalContext = facesContext.getExternalContext();
externalContext.responseReset();
externalContext.setResponseContentType("application/vnd.ms-excel");
externalContext.setResponseHeader("Content-Disposition", "attachment; filename=\"" + "precificacao.xls" + "\"");
//map beans omitted
FileOutputStream saida = null;
try {
saida = new FileOutputStream(getClass().getResource("/.").getPath() + "/precificacao.xls");
} catch (IOException e) {
System.err.println(getClass().getResource("/.").getPath() + "/precificacao.xls" + ": " + e.getMessage());
}
InputStream entrada = null;
try {
entrada = new BufferedInputStream(new FileInputStream(getClass().getResource("/template.xls").getFile()));
ExcelTransformer transformer = new ExcelTransformer();
Workbook workbook = transformer.transform(entrada, beans);
workbook.write(saida);
saida.flush();
saida.close();
facesContext.responseComplete();
} //catch ommitted
다운로드 한 파일이 이미 손상되었습니다 : print
이 다운로드 대화 상자 루틴 전에는, XLS는 일반적으로 생성 된, 그래서 나는 그것이 내가 XLS에 대한 올바른 명칭에있는 링크를 보았다하지만 내가 잘못된 길을 가고있어 setResponseContentType 생각 : http://www.iana.org/assignments/media-types
를 해결? – Kukeltje
같은 방식으로 손상되었습니다 ... 내가 여러 가지 ExternalContext 호출을 시도하고 항상 손상되었습니다 ... 뭔가 @ Kukeltje 제안? – philabreu
** 디버그 ** 응답을 제안합니다 ... 크기는 얼마입니까, 비어 있습니까? 고정 된 엑셀을 다운로드하면 어떻게 될까요? 고정 PDF를 다운로드하는 경우 고정 이미지 (이 모든 구성을 통해 모두)를 다운로드하면 어떨까요? 사물을 제거하십시오 ... 원인을 좁히십시오 ... 중단 점 설정 ... – Kukeltje