使用php下载csv文件

f45qwnt8  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(456)

[解决方案]谢谢大家的回复。我把按钮改成了一个链接,它现在正常工作了。
我知道这个问题已经讨论了一次又一次,我已经读了一整天可能的解决方案,但没有解决我的问题。我需要做一个脚本,从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上进行尝试。
谢谢您。

6mw9ycah

6mw9ycah1#

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

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;

相关问题