损坏的文件导出phpexcel

时间:2019-03-11 06:08:08

标签: php phpexcel

我正在尝试使用PHPExcel导出带有图表的Excel文件。

我尝试先将其存储到某个路径,然后读取文件并将其写入输出缓冲区,这与我的本地设备配合正常。

此外,当我直接从服务器中存储的路径下载文件时,该文件就可以了。

问题是当我尝试从浏览器输出excel时。

在记事本中打开corrupted文件时,我在文件中找到了整个页面脚本(html + js)和其他加密内容。

    xl/charts/chart1.xmlPK    Ù\kNÍKR"x      #           ¶(  xl/worksheets/_rels/sheet1.xml.relsPK    Ù\kNè~F³   *  #           ¶á  xl/worksheets/_rels/sheet2.xml.relsPK    Ù\kNÏ¢™±   $  #           ¶Õ  xl/drawings/_rels/drawing2.xml.relsPK    Ù\kNÇ
    +‰               ¶Ç  xl/drawings/drawing2.xmlPK      A  †!    `<!DOCTYPE html>`

<html lang="en">
    <head>
        <meta charset="UTF-8"/>

        <base href="http://192.168.11.32:80/Test_Gbd_Portal/gbdportal-new/" />

        <!-- Libraries Styles -->
        <link rel="stylesheet" type="text/css" href="gbdportal/assets/css/bootstrap.min.css"/>
        <!-- <link rel="stylesheet" type="text/css" href="gbdportal/assets/css/font-awesome.min.css" /> -->
        <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

这是我的代码段:

    $lsSavePath = $upload_dir.$lsFileName;

    $objWriter = \PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    $objWriter->setIncludeCharts(TRUE);
    $objWriter->save($lsSavePath);

    $lnFilesize = filesize($lsSavePath);

    // Redirect output to a client’s web browser (Excel2007)
    header('Content-Type: application/force-download');
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    header("Content-Disposition: attachment; filename=" . utf8_decode($lsFileName));
    header('Content-Transfer-Encoding: binary');
    header('Accept-Ranges: bytes');
    header('Cache-Control: max-age=0');
    header("Content-Length:" . $lnFilesize);
    readfile($lsSavePath);

将文件输出到浏览器时,header()中的内容是否可能会出现此问题?

0 个答案:

没有答案