【发布时间】:2011-02-21 12:45:55
【问题描述】:
我在 WordPress 中创建了一个自定义解决方案,该解决方案将生成一个 CSV 文件,通过单击一个直接链接到该文件的简单超链接来下载该文件。而不是被提示将文件下载到计算机; CSV 会在浏览器窗口中打开。
FWIW 我在 Media Temple 上使用 WordPress 的香草安装。
【问题讨论】:
标签: php wordpress csv mediatemple
我在 WordPress 中创建了一个自定义解决方案,该解决方案将生成一个 CSV 文件,通过单击一个直接链接到该文件的简单超链接来下载该文件。而不是被提示将文件下载到计算机; CSV 会在浏览器窗口中打开。
FWIW 我在 Media Temple 上使用 WordPress 的香草安装。
【问题讨论】:
标签: php wordpress csv mediatemple
您需要向浏览器发送application/csv 的 MIME 类型,以便它将处理文件的责任交给操作系统推荐(或用户选择)的任何内容。
在 PHP 中(在任何输出发送到客户端之前):
header('Content-type: application/csv');
【讨论】:
你可以使用PHP的header()函数来改变Content-type
header('Content-Type: application/csv');
header('Content-Disposition: attachment; filename="myFile.csv"');
以上代码将强制提示用户下载。其中myFile.csv 应替换为您要下载的文件的路径。
【讨论】:
发送正确的 mime 类型
header('Content-type: text/csv');
并使用 Content-Disposition 标头告诉它下载:http://www.jtricks.com/bits/content_disposition.html
header('Content-Disposition: attachment; filename="mycssfile.csv"');
您总是希望发送正确的 mime 类型,否则防火墙、防病毒软件和某些浏览器可能会出现问题...
【讨论】:
这行得通:
$filename = 'export.csv';
header('Content-type: application/csv');
header('Content-Disposition: attachment; filename='.$filename);
另外,我个人不喜欢我网站上的链接,我喜欢按钮。如果您想要一个按钮来执行导出功能,您可以使用下面的代码。我只是想我会发布它,因为我第一次花了一点时间才弄清楚:)
<input type="button" value="Export to CSV" onClick="window.location.href='something.php?action=your_action';"/>
【讨论】: