前端页面下载

方法一:window.open(url);

1 window.open("http://127.0.0.1:8001/admin/finance/export/exportExcel");

  但这有个问题:浏览器会打开一个新窗口,然后迅速自动关闭,体验非常不好。

方法二:模拟form提交

  由于ajax函数的返回类型只有xml、text、json、html等类型,没有“流”类型,所以通过ajax去请求该接口是无法下载文件的,所以我们创建一个新的form元素来请求接口。

1 var $eleForm = $("<form method='get'></form>");
2 $eleForm.attr("action","http://127.0.0.1:8001/admin/finance/export/exportExcel");
3 $(document.body).append($eleForm);
4 $eleForm.submit();

方法三:模拟a标签点击(强烈推荐)

  jquery实在是太方便了,犹如控件的自摸,仅仅一行代码流畅下载!

1 $("<a href='http://127.0.0.1:8001/admin/finance/export/exportExcel'/>")[0].click();

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现这个功能,你可以按照以下步骤: 1. 创建一个 `ZipOutputStream` 对象,并指定要压缩的文件。 ```java ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream()); ``` 2. 循环遍历要压缩的文件列表,将每个文件添加到压缩文件中。 ```java for (File file : fileList) { zipOut.putNextEntry(new ZipEntry(file.getName())); FileInputStream fileIn = new FileInputStream(file); IOUtils.copy(fileIn, zipOut); fileIn.close(); zipOut.closeEntry(); } ``` 这里使用了 `IOUtils.copy()` 方法来将文件内容复制到 `ZipOutputStream` 对象中。 3. 设置响应头,让浏览器将压缩文件作为附件下载。 ```java response.setContentType("application/zip"); response.setHeader("Content-Disposition", "attachment; filename=\"compressed.zip\""); ``` 4. 关闭 `ZipOutputStream` 对象并刷新响应。 ```java zipOut.flush(); zipOut.close(); response.flushBuffer(); ``` 完整的示例代码如下: ```java @RequestMapping("/download") public void download(HttpServletResponse response) throws IOException { List<File> fileList = getFileList(); // 获取要压缩的文件列表 // 设置响应头 response.setContentType("application/zip"); response.setHeader("Content-Disposition", "attachment; filename=\"compressed.zip\""); // 创建 ZipOutputStream 对象 ZipOutputStream zipOut = new ZipOutputStream(response.getOutputStream()); // 将每个文件添加到压缩文件中 for (File file : fileList) { zipOut.putNextEntry(new ZipEntry(file.getName())); FileInputStream fileIn = new FileInputStream(file); IOUtils.copy(fileIn, zipOut); fileIn.close(); zipOut.closeEntry(); } // 关闭 ZipOutputStream 对象并刷新响应 zipOut.flush(); zipOut.close(); response.flushBuffer(); } ``` 请注意,在上面的示例代码中,`getFileList()` 方法返回一个 `List<File>` 对象,其中包含要压缩的文件列表。你需要根据实际情况编写此方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值