簡體   English   中英

在Ajax-Call之后從Java下載ZIP

[英]Download ZIP from Java After Ajax-Call

我遇到了問題,我在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);
}

創建ZIP文件可以正常工作,但是如果我用jQuery AJAX POST調用它,我將返回比特流,但無法下載該文件。

順便說一句。 該文件是動態創建的,並不位於服務器上。

希望可以有人幫幫我。

最好的祝福!

如果您在ajax調用中對此方法提出請求,則結果字節流將位於javascript的result對象中。 那根本沒有用。

您根本不應該在ajax調用中執行此操作。 要么生成指向請求url的普通html鏈接,要么在javascript中構建url並將其放入window.location

如果您需要發送POST,請制作一個html表單並將其發布。 您可以使用javascript填充數據,然后調用submit() 在此處查看更多詳細信息: JavaScript發布請求(例如表單提交)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM