【发布时间】:2014-11-24 08:11:52
【问题描述】:
这本身不是问题,更多的是请求从 Codeigniter 将查询导出为可下载 CSV 的最佳方式。在 CI 中,我从控制器(例如成员)中的模型调用一个简单查询(例如 select * from members where country=123),大致如下:
$data['membercountries_query'] = $this -> Queries_model -> get_members_by_country($country_id);
这涉及到一个视图,在该视图中,我显示了一个国家/地区成员的人类可读信息。我可以使用$this->dbutil->csv_from_result($membercountries_query) 在视图或控制器中轻松生成此结果的 CSV,并将其显示在视图中。然后我想向用户展示一个按钮/超链接“将结果下载为 CSV”,这将生成一个文件保存对话框。
我在 SO 上进行了相当多的谷歌搜索和搜索,并且有许多可能的解决方案具有不同程度的复杂性。我想也许添加一个控制器功能,(例如member/create_csv($data)),但想不出一种方法可以将CSV $data 从页面链接传递给它(这可能完全是另一个问题)。
有人可以就创建 CSV 下载链接的最简单快捷的方法提供建议吗?出于安全原因,我不希望将 CSV 文件保存到服务器,然后创建指向已保存文件的链接。
如果能够创建一个通用的帮助器/函数,它可以获取任何查询结果并生成可下载的 CSV,这将是特别有用的。
我感谢 CI 人员制作了 dbutil 和下载帮助程序,最简单的方法必须涉及 csv_from_result() 和 force_download(),但我实在想不出这么晚了将两者结合在一个视图中(或其他):(
【问题讨论】:
-
感谢您的指点。在发布之前,我确实在该线程中看到了几个解决方案,如果我没有遇到任何更简单的问题,我可能会使用它们。如果可以避免的话,我宁愿不必设置大量标头,尤其是因为在未来的浏览器/服务器中,标头设置可能不起作用。
标签: php codeigniter csv export