【问题标题】:CSV File Opening Inline In Browser Rather Than Prompting DLCSV 文件在浏览器中打开内联而不是提示 DL
【发布时间】:2012-06-16 16:42:55
【问题描述】:
所以我有一个 php 文件,它使用 fopen、fputcsv、fclose 和一个用于引导窗口打开所述 csv 文件的导出按钮的 javascript 函数创建一个 csv 文件。 csv 文件被正确创建,但是当我点击导出按钮时,它只是在另一个选项卡中打开 csv 文件,其中只有原始数据。我一直在寻找(并期待)是提示下载或打开文件(然后我会用 excel 打开)。如果我保存现在打开的页面,它会在 excel 中正常打开,但它有来自 html 的标记(我不想要),所以我只是想看看是否有任何特别的东西可以解决这个问题。到目前为止,我已经在 ie9 和 firefox 中测试过了。
谢谢!
【问题讨论】:
标签:
php
javascript
csv
export
【解决方案1】:
您在发送输出之前是否发送了适当的标头?
ob_clean();
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="some_filename_' . date('Ymd') . '.csv"');
【解决方案2】:
将header中的内容类型设置为application/vnd.ms-excel
header("Content-type: application/vnd.ms-excel");
然后将您的文件发送回浏览器(这将强制它打开 excel)。如果您想为 CSV 发送正确的内容类型,请将其设置为 text/csv