Laravel Excel 结合 Ajax 方式实现导出功能

最近在做一个导出 Excel 的功能,经过两天的努力,终于算是搞定了~
要求:
1. 同页面友好提示
2. 无数据禁止下载
网上已经有很多类似的教程,这里就不啰嗦了,重点介绍一下,“下载中...” 弹出框的实现。
这里使用了 bootstrap 和 amazeui 插件,以及 jquery.fileDownload.js,下面是代码实现:
前端:

代码已被折叠,点此展开

基本功能实现,其他的可以根据实际情况作出相应修改,例如根据时间段导出,可以传参等。
后端代码:
UserController.php

代码已被折叠,点此展开

到这里,基本就算完成了,其中最重要的就是 export () 中的 ['Set-Cookie' => 'fileDownload=true; path=/'], 这关系到前端 $.fileDownload 判断是否下载成功的标志,本来是怎么都搞不定,还是看了源代码的结果,才注意到的。
有需要的小伙伴,可以参考一下,下面是效果图:
询问框:
file
加载框:
file
成功下载:
file
失败下载:
file
至此就搞定了。
第一次写,有些啰嗦,见谅。。。

本帖已被设为精华帖!
本帖由系统于 6年前 自动加精
coldwinters
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 15
ThinkQ

很好

6年前 评论

性能怎么样啊?可以快速导什么量级的.

6年前 评论
coldwinters

@Teles 具体多少量级没有详细测试,我做的项目,因为要关联三张表,30 天的数据,时间约在 5 秒内,如果要测试大量数据,你可以试一下

6年前 评论

还可以,收藏了

6年前 评论

哥好多错误啊。不能正常运行 :sob:

6年前 评论
coldwinters

@Asa_c 哪里报错呢?

6年前 评论

@OneLight 首先后端代码缺了一些括号。补上括号后 前端页面需要再引入一个 jquery 引入后还是报错 500

6年前 评论
coldwinters

@Asa_c 后端括号已改正,谢谢指正!有些地方的省略号,是要加入自己的东西,比如 jquery/css 等的引入,再排查一下看看

6年前 评论
coldwinters

@Asa_c 按照提示,明显是你的 data 不存在啊!

file

6年前 评论

@OneLight 哥你这个歧义太多 照着你这个教程 = = 你确定可以直接用 json 后台 不是 response ()->json ()

6年前 评论
coldwinters

@Asa_c 你要是有好方法,也可以指导一下我嘛,我在网上找了好久,都没找到,最后还是拼凑起来,基本不影响功能实现才记录下来的.

6年前 评论

我加了 fileDownload=true;path=/ 一样不触发 successCallback 回调是怎么回事 :joy:

3年前 评论