簡體   English   中英

創建CSV文件后無法直接下載

[英]Can't direct download after creating a CSV file

我已經看到了很多這類問題的答案,但沒有一個對我有用。 我有一個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,也不想將文件存儲在某個地方,我只想構建文件並直接通過瀏覽器下載

試試這個代碼:

$('#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');
             }
         })
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM