从HTML页面使用Spring下载文件

问题描述 投票:0回答:1

我想从前端下载文件。该文件在TestFlow.generateReport上生成

我的运行直到结束,但它没有下载任何东西。我在这里失踪了什么?

    @RequestMapping(value = "/flow/generate-report" , method = RequestMethod.GET)
public @ResponseBody void generateFlowReport(@RequestParam("flowName") String flowName, HttpServletResponse response) {
    InputStream resource = TestFlow.generateReport(flowName);
    response.setContentType("application/force-download");
    response.setHeader("Content-Disposition","attachment; filename=report-" + flowName + ".xlsx");
    try {
        IOUtils.copy(resource,response.getOutputStream());
        response.flushBuffer();
        resource.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}
java html spring spring-mvc
1个回答
0
投票

原始的AJAX请求无法处理文件下载请求。您必须创建一个虚拟表单。 see this question。有很多jQuery插件可以帮助你做到这一点。

由于它是一个下载请求,你的控制器方法不应该使用@ResponseBody,自己接管响应,在写完内容后关闭它。

© www.soinside.com 2019 - 2024. All rights reserved.