我试图将Excel生成的文件存储到服务器目录,而不是在到达路径后下载。
我的代码:
// worksheet
$objPHPExcel->getActiveSheet()->setTitle('Podaci');
$objPHPExcel->setActiveSheetIndex(0);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="mjesecni_podaci.xlsx"');
header('Cache-Control: max-age=0');
header('Cache-Control: max-age=1');
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header ('Cache-Control: cache, must-revalidate');
header ('Pragma: public'); // HTTP/1.0
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
//$objWriter->save('php://output');
$putanja_spremanja_fajla = 'mail/mjesecni_podaci.xlsx';
$objWriter->save($putanja_spremanja_fajla);
sleep(1);
slanje_maila($db, $datum);
我试图删除一些标题行,但是我的文件已损坏或出现一些错误。 有什么建议么?
答案 0 :(得分:1)
<HeaderTemplate><asp:Label ID="ChatTitle" Text='<%#Session["user"]%>' runat="server"></asp:Label>:</HeaderTemplate>
的header()
/home/database/public_html/application/mail/
,因为此行代码检查服务器(cgi-fcgi)或用户(cli)是否“调用”了脚本。在那之后,您可以使用cron作业或类似的作业(如果要尝试运行.php脚本,则必须切断)。
如果您尝试通过网络浏览器访问链接,则必须使用标头,因为if (PHP_SAPI == 'cli') die('This example should only be run from a Web Browser');
与浏览器对话。
答案 1 :(得分:0)
以下几行告诉浏览器需要一个文件。 (精确的Excelfile mjesecni_podaci.xlsx)
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="mjesecni_podaci.xlsx"');
如果您告诉PHPExcel将文件保存到磁盘,则不会将文件传送到浏览器。 如果根本没有任何输出或某种回声或其他任何东西,您将收到错误消息,或者浏览器将使用您产生的输出来“下载”文件“ mjesecni_podaci.xlsx”。
例如:
<?php
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="mjesecni_podaci.xlsx"');
echo "Hello World!"
?>
此代码将下载内容为“ Hello World!”的文件“ mjesecni_podaci.xlsx”。 (将文件保存到磁盘,然后使用记事本++之类的编辑器打开它)
在代码中,应仅删除两行,并确保程序可以写入子文件夹“ mail”。之后,您的代码应该可以工作了。 (至少在sleep(1);
之前的部分)。