[发现解决方案]谢谢大家的回复。我将按钮更改为链接,现在它正在按预期工作。
我知道这个问题已经一遍又一遍地讨论过,我一整天都在阅读可能的解决方案,但没有一个能解决我的问题。 我需要创建一个脚本来从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上试用。
谢谢。
答案 0 :(得分: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;