私はJettのを使用してレポートを生成する方法を持っているし、それがユーザーのために、ファイルのダウンロードダイアログを示していますダウンロードする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
応答をデバッグ**することを提案しています...サイズは何ですか、それは空ですか?固定のExcelをダウンロードするとどうなりますか?固定PDFをダウンロードするとどうなりますか?固定画像をダウンロードするとどうなりますか?物事を取り除く...原因を絞り...ブレークポイントを設定する... – Kukeltje