1

我们的客户可能有大量记录,整个下载过程可能需要 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();
4

0 回答 0