2016-05-29 13 views
0

phpからcsvファイルを使用してデータを取得してダウンロードしようとしています。このファイルはanswerというタスクではfirefox以外のすべてのブラウザで動作します。php経由でcsvにエクスポートすると、firefoxで動作しません。

$s = $master->getUser(); 
function array2csv(array &$array) 
{ 
    if (count($array) == 0) { 
    return null; 
    } 
    ob_start(); 
    $df = fopen("php://output", 'w'); 
    fputcsv($df, array_keys(reset($array))); 
    foreach ($array as $row) { 
     fputcsv($df, $row); 
    } 
    fclose($df); 
    return ob_get_clean(); 
} 

function download_send_headers($filename) { 

    /*header("Content-Type: application/csv"); 
    header("Content-Disposition: attachment; filename={$filename}"); 

    // Disable caching 
    header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1 
    header("Pragma: no-cache"); // HTTP 1.0 
    header("Expires: 0"); // Proxies*/ 

    // disable caching 
    $now = gmdate("D, d M Y H:i:s"); 
    header("Expires: Tue, 03 Jul 2001 06:00:00 GMT"); 
    header("Cache-Control: max-age=0, no-cache, must-revalidate, proxy-revalidate"); 
    header("Last-Modified: {$now} GMT"); 

    // force download 
    header("Content-Type: application/force-download"); 
    header("Content-Type: application/octet-stream"); 
    header("Content-Type: application/download"); 

    // disposition/encoding on response body 
    header("Content-Disposition: attachment;filename={$filename}"); 
    header("Content-Transfer-Encoding: binary"); 
    header("Content-Disposition: attachment;filename={$filename}"); 
    header("Content-Transfer-Encoding: binary"); 
} 
download_send_headers(site_title .' '. date("d M Y") . ".csv"); 
echo array2csv($s); 
die(); 

Firefoxでは、ファイル拡張子がcsvに表示されないため、アプリケーションファイルのように見えます。

header("Content-Type: application/force-download"); 
header("Content-Type: application/download"); 

ちょうど保持::

header("Content-Type: application/octet-stream"); 

答えて

0

はあなたのコードでこれらを削除しようとしたことがありますか?
+0

は、私が代わりに最初の2の3行目を追加する必要があります

enter image description here

+0

はい - '// force download '部分でコードを修正してください。 –

関連する問題