我正在尝试使用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()中的内容是否可能会出现此问题?