[已找到解决方案] 谢谢大家的回复。我将按钮更改为链接,现在它可以正常工作了。
我知道这个主题已经被讨论了一遍又一遍,我一整天都在阅读可能的解决方案,但没有一个解决我的问题。 我需要编写一个脚本来从 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 上尝试。
谢谢你。
您可以使用以下代码将文件保存在服务器中
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;