Salve a tutti,
Sono nuovo del forum, nonostante già da tempo conosco e usufruisco delle tante chicche di questo sito.
Ho un problema:
ho scritto una jsp con delle option dove sono presenti una serie di parametri che mi servono per scaricare/generare un report (pdf, rtf o xls).
Quando clicco sul bottone, invio la richiesta ad una servlet, la quale verifica se il file esiste (in una cartella superiore alla webbap) ed in caso contrario provvede a generarlo e uplodarlo sul file system... e fin qui tutto bene
Il problema nasce dal fatto che oltre a fare l'upload, subito dopo devo far fare il download del report all'utente e in seguito ridirigerlo sulla jsp di origine.
Il metodo per il download nella servlet è il seguente:
private static void downloadFile(HttpServletResponse response, HttpServletRequest request, File file, String fileName) throws IOException{
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(response.getOutputStream());
response.setHeader("Content-disposition", "attachment; filename=\"" + fileName + "\"");
response.setContentType(request.getContentType());
try {
byte[] buff = new byte[2048];
int bytesRead;
while (-1 != (bytesRead = bis.read(buff, 0, buff.length)))
{
bos.write(buff, 0, bytesRead);
}
} catch (IOException e) {
throw e;
} finally {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
}
}
Il problema si verifica quando cerco di fare la forward dopo questo metodo, perchè mi dice che non posso forwardare dopo aver effettuato la commit della response (e ha ha ragione perchè la faccio nel metodo download)...
Suggerimenti?
Grazie in anticipo
Valerio