【发布时间】:2017-04-26 17:23:46
【问题描述】:
我需要允许用户从浏览器(Java/Spring MVC 4.x 应用程序)下载动态生成的大型 CSV 文件(约 500K 行)我不想先创建整个文件并拥有浏览器长轮询服务器以确定它何时完成——相反,我想立即开始下载并让服务器在新的行/字节可用时流式传输响应。
我尝试使用 ServletOutputStream/PrintWriter 在文本可用时添加文本,然后刷新缓冲区。但是,在控制器方法返回之前,浏览器似乎不会开始下载。 (在调用 flushBuffer() 后,您会看到该文件显示为下载文件,并在 Chrome 中显示“正在启动”消息)。
有没有更好的方法来做到这一点?我看到 StreamingResponseBody 是在 Spring 4.2 中引入的,但如果可能的话,我宁愿不升级。 Spring
【问题讨论】:
标签: java spring spring-mvc