【发布时间】:2017-09-26 18:10:27
【问题描述】:
我有一个数组,我正在尝试将其下载为 csv 文件 我的数组看起来像这样
Array(
[0] => Array
(
[Date] => 2017-01-02
[Name] => Asia consumer MC Alpha bmk - risk
[Level] => .333000
)
[1] => Array
(
[Date] => 2017-01-03
[Name] => Asia consumer MC Alpha bmk - risk
[Level] => .333000
))
我将数组转换为文件的代码是
public function DownloadFile($filetype,$Array_data,$content){
$LevelArray = array('Date','Name','Level');
$selected_array = $LevelArray;
if($filetype =='csv'){
$Filename ='Level.csv';
header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment;
filename='.$Filename.'');
// create a file pointer connected to the output stream
$output = fopen('php://output', 'w');
fputcsv($output, $selected_array);
foreach ($Array_data as $row){
fputcsv($output, $row);
}
fclose($output);
}}
作为响应,我得到了响应的输出,但该响应并未转换为文件类型,尽管标题指向从中获取 csv 文件。
Date,Name,Level
2017-01-02,"Asia consumer MC Alpha bmk - risk",.333000
2017-01-03,"Asia consumer MC Alpha bmk - risk",.333000
2017-01-04,"Asia consumer MC Alpha bmk - risk",.333000
我尝试过使用 laravel 和许多其他的响应方法,但似乎没有任何效果,它的标头无法强制浏览器下载文件
响应标题如下所示
Connection:close
Content-Disposition:attachment; filename=Benchmark-Level.csv
Content-type:text/csv;charset=UTF-8
Host:localhost:8000
X-Powered-By:PHP/5.6.25
【问题讨论】:
-
您如何回复您的回复?
-
我只是设置标题并将结果放到一个文件中,我打开同样的东西在 codeigniter 中工作但在这里不起作用
标签: php laravel csv response-headers downloadfile