我試圖圍繞Java輸出/輸入流,關閉和刷新我的頭。我有一種情況,我想使用來自服務器的數據使用Apache POI創建文件。我希望文件一旦從數據庫中檢索到第一條記錄就開始下載(顯示瀏覽器底部的文件已經開始下載)。Java輸出流,觸發文件下載從數據庫檢索所有數據之前下載
public void createExcelFile(final HttpServletResponse response,
final Long vendorId) {
try {
// setup responses types...
final XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
final XSSFSheet sheet = xssfWorkbook.createSheet("sheets1");
// create file with data
writeExcelOutputData(sheet, xssfWorkbook);
xssfWorkbook.write(response.getOutputStream());
xssfWorkbook.close();
}
catch (final Exception e) {
LOGGER.error("Boom");
}
上面的代碼將執行文件下載沒有問題,但是這可能是一個很大的文件。我走下車獲得(約20/30秒)的數據,然後後,開始下載<沒有好...
我可以achive什麼,我需要什麼或者最好的方法,在此先感謝
乾杯: )
您正在嘗試傳輸一個Excel文件?除非它是一個流,否則在它完成之前不能發送它。 –
如果你在一個流中創建它,你將無法下載它。客戶端瀏覽器將不得不用一些插件來解釋它。 –
我會批量返回數據......因此觸發文件在所有批次恢復之前開始下載是不可能的? – rogger2016