首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Ajax调用后从Java下载ZIP

Ajax调用后从Java下载ZIP
EN

Stack Overflow用户
提问于 2015-02-18 13:29:09
回答 1查看 1.6K关注 0票数 0

我有个问题,我用JAVA创建了一个包含PDF文件的ZIP文件

代码语言:javascript
运行
复制
@Override
@ResponseBody
@RequestMapping(value = "pdfDownload", method = RequestMethod.POST, produces = "application/zip")
public byte[] generatePDFs(
        @RequestParam(value = "date", required = true) String date,
        Principal principal,
        HttpServletResponse response) {

    String filename;
    PrintRequest pr = new PrintRequest ();
    List<String> pis = new ArrayList<> ();
    pis.add ("3453453535");
    pr.setDate ("032015");
    pr.setPids (pis);

    filename = pr.getDate () + ".zip";
    response.setContentType ("application/zip");
    response.setHeader("Content-Disposition", "attachment; filename="+ filename);

    return createZip (pr, principal);
}

创建ZIP文件很好,但是如果我用jQuery AJAX POST调用它,结果我会得到比特流,但不能下载该文件。

顺便说一句。文件是动态创建的,不位于服务器上。

希望有人能帮我。

诚挚的问候!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-18 13:36:02

如果在ajax调用中请求此方法,则生成的字节流将位于javascript中的结果对象中。一点用都没有。

您不应该在ajax调用中这样做。要么生成指向请求url的普通html链接,要么在javascript中构建url并将其放在window.location中。

如果您需要发送一个POST,创建一个html表单并发布它。您可以使用javascript填充数据,然后调用submit()。有关更多详细信息,请查看此处:JavaScript post request like a form submit

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28584823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档