Php 将CSV文件下载到本地下载';s文件夹

Php 将CSV文件下载到本地下载';s文件夹,php,csv,Php,Csv,我有一个php文件,它将表单数据转换为csv格式,然后自动下载到用户的本地下载文件夹 $time = time(); $filename = 'exceldownloads/myreport_'.$time.'.csv'; $file = fopen($filename,'w'); fputcsv($file,$rowexcel); 上述代码工作正常,并将csv文件存储在服务器的指定文件夹中。但我的要求是下载到本地文件夹。我已经看到了许多解决上述问题的方法,但只有在我们知道本地目标文件夹的情况

我有一个php文件,它将表单数据转换为csv格式,然后自动下载到用户的本地下载文件夹

$time = time();
$filename = 'exceldownloads/myreport_'.$time.'.csv';
$file = fopen($filename,'w');
fputcsv($file,$rowexcel);

上述代码工作正常,并将csv文件存储在服务器的指定文件夹中。但我的要求是下载到本地文件夹。我已经看到了许多解决上述问题的方法,但只有在我们知道本地目标文件夹的情况下,这些方法才有效。但是,我的要求是让它可以下载到最终用户本地下载的文件夹(我不知道它的下载位置)。是否可以将其下载到最终用户系统,而不必特别提及目标路径

您可以将网页的输出导出为附件,该附件将作为下载显示给用户。您可以通过在向用户进行任何输出之前输出适当的标题来实现这一点

下面是一个示例,创建名为foo.CSV的CSV文件下载:

header("Content-type: text/csv");
header("Content-Disposition: attachment;Filename=foo.csv");
输出标题后,只需将文件的所有数据输出到页面内容

*编辑:*根据要求,这里有一个工作片段:

header("Content-type: text/csv");
header("Content-Disposition: attachment;Filename=foo.csv");
echo implode(";", $rowexcel) . "\r\n";  // you should expand this accordingly
或者,根据您的代码,下面是另一个代码片段:

$filename = 'myreport'.time().'.csv';
$f = fopen($filename,'w');
fputcsv($f,$rowexcel);
header('Content-type: application/csv');
header('Content-Disposition: attachment;filename="'.$filename.'"');
readfile($filename);

如果没有下载,请确保在header()调用之前没有输出任何内容。另外,请确保在PHP文件的开头没有任何UTF8 BOM字节,因为这些字节可能会被误解为输出

请您使用我的代码进行更详细的描述。bcoz我多次看到此解决方案,但由于我是一名新手,因此无法应用它。我非常感谢您的帮助准确地说,我应该在foo.csv、$filename或$file的位置传递什么…我应该在代码中插入这两行标题的位置现在我明白了…我实际上是在编写代码以将文件存储在服务器中,然后尝试将其移动到本地..如果我只放置您的代码并删除上面发布的内容,它起作用了。非常感谢。我就是这么做的。但是我本地的下载文件夹中没有下载任何文件$文件名='myreport'.time()'.csv'$f=fopen($filename,'w');fputcsv($f$rowexcel);标题(“内容类型:应用程序/csv”);标题('Content-Disposition:attachment;filename=“.”.$filename.'”);readfile($filename);