PHPExcel保存动态文件


PHPExcel save a dynamic file

我有以下代码,应该保存在文件服务器:

 $month_name = "MARCH2014";

       $objWriter->save(str_replace(__FILE__,"C:'xampp'htdocs'timesheet'files'{$month_name}'{$username}.xlsx",__FILE__));

我一直得到以下错误:

Fatal error: Uncaught exception 'PHPExcel_Writer_Exception' with message 'Could not close zip file C: mpp'htdocs    imesheetiles'{MARCH2014}'{HS0103}.xlsx.' in C:'xampp'htdocs'timesheet'application'third_party'PHPExcel'Writer'Excel2007.php:399 Stack trace: #0 C:'xampp'htdocs'timesheet'application'controllers'time_sheet.php(6132): PHPExcel_Writer_Excel2007->save('C:?mpp'htdocs?i...') #1 [internal function]: Time_sheet->save_time_sheet() #2 C:'xampp'htdocs'timesheet'system'core'CodeIgniter.php(359): call_user_func_array(Array, Array) #3 C:'xampp'htdocs'timesheet'index.php(202): require_once('C:'xampp'htdocs...') #4 {main} thrown in C:'xampp'htdocs'timesheet'application'third_party'PHPExcel'Writer'Excel2007.php on line 399

但是当我使用以下语句时:

   $objWriter->save(str_replace(__FILE__,"C:'xampp'htdocs'timesheet'files'MARCH2014'HS0103.xlsx",__FILE__));

没有错误,请告诉我哪里做错了?

标准PHP转义字符:

"C:'xampp'htdocs'timesheet'files'{$month_name}'{$username}.xlsx"

试图逃离

'xa => character <hex 0a> (<Line feed>)
'h  => ???
't  => <tab character>
'f  => ???

如果您希望''而不是PHP中转义序列的第一个字符,那么您需要将其转义为''

"C:''xampp''htdocs''timesheet''files''{$month_name}''{$username}.xlsx"

另一种选择是通过使用unix目录分隔符(/)使您的目录路径"安全",这在Windows和mac上仍然有效

"/xampp/htdocs/timesheet/files/{$month_name}/{$username}.xlsx"