Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Ajax调用后从Java下载ZIP_Java_Javascript_Ajax - Fatal编程技术网

在Ajax调用后从Java下载ZIP

在Ajax调用后从Java下载ZIP,java,javascript,ajax,Java,Javascript,Ajax,我遇到了一个问题,我用JAVA创建了一个包含PDF文件的ZIP文件 @Override @ResponseBody @RequestMapping(value = "pdfDownload", method = RequestMethod.POST, produces = "application/zip") public byte[] generatePDFs( @RequestParam(value = "date", required = true) String date

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

@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);
}
@覆盖
@应答器
@RequestMapping(value=“pdfDownload”,method=RequestMethod.POST,products=“application/zip”)
公共字节[]generatePDFs(
@RequestParam(value=“date”,required=true)字符串日期,
校长,
HttpServletResponse(响应){
字符串文件名;
PrintRequest pr=新的PrintRequest();
List pis=newarraylist();
pis.add(“3453535”);
pr.setDate(“2015年3月”);
pr.setPids(pis);
filename=pr.getDate()+“.zip”;
response.setContentType(“应用程序/zip”);
response.setHeader(“内容处置”、“附件;文件名=“+filename”);
返回createZip(请购单、委托人);
}
创建ZIP文件可以很好地工作,但是如果我用jQueryAjaxPost调用它,我会得到比特流,但无法下载该文件

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

希望有人能帮助我


致以最良好的祝愿

如果您在ajax调用中请求此方法,则生成的bytestream将位于javascript中的result对象中。那根本没用

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


如果您需要发送帖子,那么制作一个html表单并发布它。您可以使用javascript填充数据,然后调用
submit()
。查看此处了解更多详细信息:

好的,谢谢,但我需要添加一个POST参数,因为我必须发送ID列表来创建zip文件。啊,太糟糕了,我没有想到这一点。:)但无论如何,谢谢你,我建议你把这个zip文件暂时存储在服务器上,并在ajax调用后获得一个链接供下载。