使用 PHP 下载 csv 文件

问题描述 投票:0回答:1

[已找到解决方案] 谢谢大家的回复。我将按钮更改为链接,现在它可以正常工作了。

我知道这个主题已经被讨论了一遍又一遍,我一整天都在阅读可能的解决方案,但没有一个解决我的问题。 我需要编写一个脚本来从 mysql 数据创建 csv 并将该文件下载到默认下载浏览器的文件夹。 正如我之前所说,我已经尝试了找到的所有可能的解决方案。 我在获取数据并将其放入 csv 中没有问题。我将发布一个来自我在这里找到的解决方案的简单示例。

<?php

    header("Content-Type: text/csv");
    header("Content-Disposition: attachment; filename=file.csv");

    function outputCSV($data) {
      $output = fopen("php://output", "w");
      foreach ($data as $row)
        fputcsv($output, $row);
      fclose($output);
    }

    outputCSV(array(
      array("name 1", "age 1", "city 1"),
      array("name 2", "age 2", "city 2"),
      array("name 3", "age 3", "city 3")
    ));

?>

如果我将文件名放入 fopen 中,例如 fopen("filename.csv","w") ,它会将文件保存在服务器中。我需要下载该文件。我相信问题出在标题中。我应该怎么办?欢迎任何帮助。

我正在使用最新版本的 xampp、php 并在 Chrome 上尝试。

谢谢你。

php mysql csv header fopen
1个回答
0
投票

您可以使用以下代码将文件保存在服务器中

fopen("filename.csv","w")

然后你可以编写代码通过两种方式下载保存的文件

第一

您可以读取文件并通过标题传递到浏览器

header('Content-type: text/csv');
header('Content-Disposition: attachment; filename="filename.csv"');
ob_clean();
readfile($filePath);
exit;

第二个

您可以重定向到文件路径,例如

header("Location: ".SITE_URL."VALID_PATH/filename.csv"); 
exit;
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.