这是一个创建于 3599 天前的主题,其中的信息可能已经有所发展或是发生改变。
需求是:根据前端提交的数据 id ,后端从数据库中获取完整数据,生成 csv 文件,然后供下载
1 、页面展示了一个表格,第一列为 checkbox
2 、下载按钮调用 jquery 代码,获取选择的 checkbox 数据,然后用 ajax 提交到后端
3 、后端接收到数据 id 后,查询完整数据,生成 csv 文件
4 、展示下载界面,供用户下载数据文件。
调试一天,没有找到比较好的解决方案。
现在遇到的问题是:
1 、 ajax 无法下载文件
2 、 ajax 一般不使用 302
请高手指导,多谢
3 条回复 2016-05-30 09:19:18 +08:00  | | 1 domty 2016 年 5 月 27 日 1 1.不用 ajax ,直接作表单提交。然后下载的文件标注好类型信息,内容直接写在返回的 io 流里。 2.把文件在服务器本地化保存,并开放该静态路径以供下载。接口完成后返回静态下载地址链接。 ajax 回调拿到链接后做 window.open()或者界面跳转。 |
 | | 2 jugelizi 2016 年 5 月 28 日 1 ajax 请求页面 header 输出下载比如 header("Content-type:text/csv"); header("Content-Disposition:attachment;filename=1.csv"); 就是直接下载 |
 | | 3 Stitch 2016 年 5 月 30 日 1 感谢两位的解答,综合了两位的意见,问题已经解决。 最终的解决方案是: 1 、以 ajax 提交需要下载的 id 信息,后端生成 csv 文件,临时保存。 2 、 ajax 接口返回临时文件的名称,以 window.open 打开文件下载链接 3 、文件页面的 header 设置为 @jugelizi 所说的。 |