【问题标题】:Can't direct download after creating a CSV file创建 CSV 文件后无法直接下载
【发布时间】:2016-12-27 12:14:17
【问题描述】:

我已经看到很多这类问题的答案,但没有一个对我有用。我有一个 CSV 对象,它具有这样的 createCSV 函数:

public function createCSV($url, $delimiter = ","){
    $file = fopen($url, 'w');
    foreach ($this->content as $line) {
        fputcsv($file, $line, $delimiter);
    }
    fclose($file);
}

我想直接从浏览器下载它,所以这就是我所做的:

  header('Content-type: text/csv');
  header('Content-Disposition: attachment; filename="'.$filename.'"');
  $csv_file->createCSV('php://output');

这部分代码是通过 AJAX 调用执行的,即使标头设置为 text/csv 下载也不起作用,但在响应选项卡中我可以看到我的 csv 的内容。我尝试过使用不同的标题,但没有一个有效。如何下载 CSV 文件?

编辑

问题是我没有 CSV 的 URL,我不想将文件存储在某个地方,我只想构建文件并直接使用浏览器下载

【问题讨论】:

标签: php csv


【解决方案1】:

试试这个代码:

$('#exportcsv').click(function(){
var self = this;
         $.ajax({
             url : '/exportcsv',
             method : 'get',
             success : function(response)
             {
                 console.log(response);
                 var csvData = 'data:application/csv;charset=UTF-8,' + encodeURIComponent(response);
                 $(self).attr({
                     'download': 'publisher.csv',
                     'href': csvData,
                     'target': '_blank'
                 });
                 // window.open(uri, 'test.csv');
             }
         })
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-03
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 1970-01-01
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    相关资源
    最近更新 更多