putcsv和强制下载的问题

时间:2015-09-30 09:22:03

标签: php csv download

我正在尝试按下按钮创建一个csv文件。我遇到的问题是该文件不会下载,它只是回应了内容。

这是我的代码

CMD

这就是我打电话给班级的方式:

class csv_writer {

public $dataArray;
public $filename;
public $csvHeader;


public function create_csv() {
/**
* 
* Creates the CSV and make it ready for download
*/

    $fp = fopen('php://output', 'w');
    fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF) );

    fputcsv($fp, $this->csvHeader, ';',' ');

    foreach ( $this->dataArray as $ferow ) {

        fputcsv($fp, $ferow,';');

    }

    header('Content-Encoding: UTF-8');
    header('Content-type: text/csv; charset=UTF-8');
    header('Content-Disposition: attachment; filename="'.$this->filename.'.csv"');

    fclose($fp);} } 

我已经尝试过堆叠中的所有其他exmaple,但没有运气!希望有一个聪明的头脑可以帮助我!

1 个答案:

答案 0 :(得分:0)

您还没有制作任何内容,只有文件名。

以下是我前一段时间写的代码片段。

由你来创建输出。

简而言之:FIRST设置标题(包括filenamesuggestion)。

然后是内容。

$filenameSuggestion = "database_export_".date("d")."-".date("F")."-".date("Y").".sql";

header("Content-Disposition: attachment; filename=\"".$filenameSuggestion."\"");
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
// Create content HERE, so you need to echo something or create output another way
// .....

exit;

我希望这有助于你前进。