In questa situazione, ho creato un file zip contenente i file dei risultati di ricerca e sto cercando di inviarlo all'utente. Ecco il pezzo di codice che sto cercando di usare.Come restituire un file zip al browser tramite la risposta OutputStream?
File[] zippable = new File[files.size()];
File resultFile = ZipCreator.zip(files.toArray(zippable), results);
InputStream result = new FileInputStream(resultFile);
IOUtils.copy(result, response.getOutputStream());
Tuttavia, questo al momento non funziona correttamente. Invece di restituire il file zip che ho creato, restituisce un file html. Se in seguito cambio manualmente l'estensione del file, posso vedere che i contenuti del file sono ancora i risultati di ricerca di cui ho bisogno. Quindi il problema sta nel restituire l'estensione corretta alla risposta.
Qualcuno ha qualche consiglio per questa situazione?
Penso che potrei interpretare male qui. Ho aggiunto una riga al codice, quindi ora legge 'response.setHeader (" Content-Type "," application/zip ");' Ancora nessun successo però. Questa chiamata viene effettuata appena prima della chiamata a IOUtils.copy – Bennie
@Bennie: sembra buono, ma, di nuovo, c'è una certa confusione circa il tipo MIME "giusto" da utilizzare per un file ZIP, quindi potresti voler giocare con quei valori . – maerics
Va bene, sembra che funzioni adesso, almeno per restituire il file. Sta facendo una cosa strana però, in cui il file si chiama "exportZipSearchResults.htm.zip". Esiste un modo integrato per modificare il nome file nella risposta? – Bennie