我们的客户可能有大量记录,整个下载过程可能需要 10 多分钟。
如果下载需要 8 分钟,我们的目的是向客户显示一些错误消息。
不知何故,在此过程中,我注意到控制器在 5 分钟后发出了另一个请求。
jQuery
$('#Running.modal').off().on('shown.bs.modal', function () {
$.fileDownload("accountsummary/pdfPrint", {
httpMethod: 'POST',
data: $(PDFPrintForm).serializeObject(),
cookiePath: '/myCMS/',
successCallback: function (url) {
$("#Running.modal").modal('hide');
PDFPrintForm.remove();
},
failCallback: function (html, url) {
PDFPrintForm.remove();
$("#Running.modal").modal('hide');
$("#Failed.modal").modal({show: true});
}
});
})
后端
如果达到 8 分钟
logger.info("PDF transaction history download hits {} seconds", sec);
OutputStream outputStream;
outputStream = response.getOutputStream();
outputStream.write(errorMessage.getBytes(Charset.forName("UTF-8")));
outputStream.close();
return;
成功
Cookie c = new Cookie("fileDownload", "true");
c.setPath("/");
response.addCookie(c);
response.setHeader("Content-Disposition" , "attachment; filename=\"Account Summary-Savings/Current Account Details.pdf\"");
response.setContentType("application/pdf");
response.flushBuffer();