Firefox 将文件扩展名更改为 ".csv.htm." 时从 myapp 下载 csv (php/phpexcel)



My app (php/phpExcel( 为.csv文件提供了下载功能。当我使用 chrome 或 IE 下载文件时,一切都很好,但是当我使用 Firefox 进行下载时,它将文件扩展名更改为".csv.htm",然后 Excel 询问如何打开,因为扩展名和文件格式不适合在一起。

header('Content-Encoding: UTF-8');
    header('Content-type: text/csv; charset=UTF-8');
    header('Content-Disposition: attachment;  filename="csvdownload_'.date("Y-m-d_H_i_s").'.csv');
    echo "xEFxBBxBF"; // UTF-8 BOM
    // If you're serving to IE 9, then the following may be needed
    header('Cache-Control: max-age=1');
    // If you're serving to IE over SSL, then the following may be needed
    header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); 
    header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
    header ('Pragma: public'); // HTTP/1.0

    $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
    $objWriter->setDelimiter(';');
    $objWriter->setEnclosure('"');
    $objWriter->setLineEnding("rn");
    $objWriter->save('php://output');

使用下面显示的标题,所有浏览器都应该很高兴并将文件下载为 CSV。如果您尚未计算字节数,只需省略该标头即可。

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-disposition: attachment; filename="Your_File_Name_Here.csv"');
header('Content-length: ' . $FileBytes);
header('Content-type: application/octetstream');
header('Pragma: no-cache');
header('Expires: 0');

最新更新