【问题标题】:Not being prompted to download CSV file未提示下载 CSV 文件
【发布时间】:2011-02-21 12:45:55
【问题描述】:

我在 WordPress 中创建了一个自定义解决方案,该解决方案将生成一个 CSV 文件,通过单击一个直接链接到该文件的简单超链接来下载该文件。而不是被提示将文件下载到计算机; CSV 会在浏览器窗口中打开。

FWIW 我在 Media Temple 上使用 WordPress 的香草安装。

【问题讨论】:

    标签: php wordpress csv mediatemple


    【解决方案1】:

    您需要向浏览器发送application/csv 的 MIME 类型,以便它将处理文件的责任交给操作系统推荐(或用户选择)的任何内容。

    在 PHP 中(在任何输出发送到客户端之前):

    header('Content-type: application/csv');
    

    【讨论】:

      【解决方案2】:

      你可以使用PHP的header()函数来改变Content-type

      header('Content-Type: application/csv');
      header('Content-Disposition: attachment; filename="myFile.csv"');
      

      以上代码将强制提示用户下载。其中myFile.csv 应替换为您要下载的文件的路径。

      【讨论】:

      • 感谢您的帮助!
      【解决方案3】:

      发送正确的 mime 类型

      header('Content-type: text/csv');
      

      并使用 Content-Disposition 标头告诉它下载:http://www.jtricks.com/bits/content_disposition.html

      header('Content-Disposition: attachment; filename="mycssfile.csv"');
      

      您总是希望发送正确的 mime 类型,否则防火墙、防病毒软件和某些浏览器可能会出现问题...

      【讨论】:

      • 效果很好!也感谢您提供资源链接!
      【解决方案4】:

      这行得通:

      $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';"/>
      

      【讨论】:

      • 不错的解决方案,感谢您的帮助! :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-09
      • 1970-01-01
      • 1970-01-01
      • 2012-01-18
      • 1970-01-01
      • 1970-01-01
      • 2022-01-09
      相关资源
      最近更新 更多