Cómo guardar el pdf generado con la API de JasperReports en el servidor

Necesito guardar mi generado (PDF) archivo en mi servidor. estoy usando API de JasperReports.

Ejemplo de código para (PDF) Generacion:

//Result set(rs)
//Report path (rptPath)
//Hash map (hmp)
//ServletOutputStream (sos)
//HttpServletResponse (resp)

JRResultSetDataSource jrrs = new JRResultSetDataSource(rs);
bytes = JasperRunManager.runReportToPdf(rptPath, hmp, jrrs);
sos = resp.getOutputStream();
resp.setContentType("application/pdf");

resp.setHeader("Content-Disposition", "attachment;filename="MyFile.pdf");

sos.write(bytes);

sos.flush();
sos.close();

Genera directamente el archivo y solicita la descarga. Donde quiero almacenar el archivo generado en el servidor.

preguntado el 29 de agosto de 12 a las 14:08

Mi código anterior está generando un archivo pdf. Necesito guardar este archivo en el servidor. No debería solicitar la descarga del archivo. -

Entonces, escriba el archivo en el disco usando las capacidades de Java IO... Realmente no entiendo su problema. -

El archivo generado no debería solicitar la descarga. Debería guardarse internamente en mi servidor. -

1 Respuestas

Debe escribir bytes en el archivo local en el servidor en lugar de volver a escribirlo en HttpResponse para eso. Su código puede verse como:

FileOutputStream fileOuputStream = new FileOutputStream("C:\\report.pdf");
fileOuputStream.write(bytes);
fileOuputStream.close();

Respondido 29 ago 12, 14:08

Gracias compañero. Pero, estás escribiendo el archivo aquí. Pero, necesito almacenar ese mismo archivo en el servidor. No es necesario solicitar la descarga, internamente necesito guardar ese archivo. - Guía JD

¿Este código no se ejecuta en el propio servidor? En caso afirmativo, la escritura del archivo ocurrirá localmente, es decir, el propio servidor, ¿verdad? - Saurabh

Sí, tiene razón, pero ¿hay alguna otra forma de guardar ese archivo directamente en el servidor? - Guía JD

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.