首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >putcsv和force-download的问题

putcsv和force-download的问题
EN

Stack Overflow用户
提问于 2015-09-30 17:22:03
回答 1查看 47关注 0票数 0

我正在尝试在单击按钮时创建csv文件。我的问题是文件无法下载,它只是将内容回显出来。

这是我的代码

代码语言:javascript
复制
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);} } 

我是这样调用这个类的:

代码语言:javascript
复制
$csv = new csv_writer();
$csv->dataArray = array( 'value1', 'value2' );
$csv->filename  = 'test';
$csv->csvHeader = array( 'value1', 'value2' );

$csv->create_csv();

我已经尝试了堆栈上的所有其他示例,但都没有成功!希望有一个聪明的头脑能帮助我解决问题!

EN

回答 1

Stack Overflow用户

发布于 2015-09-30 17:35:47

您还没有生成任何内容,只生成了文件名。

下面是我不久前写的一段代码片段。

这取决于您来创建输出。

简而言之:首先设置头文件(包括文件名建议)。

然后是内容。

代码语言:javascript
复制
$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;

我希望这会对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32862429

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档