2015-01-05 4 views
0

Я не могу сохранить файл, сгенерированный PHPExcel на сервер. Когда это сделатьскачать файл на сервер phpexcel + codeigniter

$this->load->library('Classes/PHPExcel'); 
$this->phpexcel->getActiveSheet()->setCellValue('A5','Value'); 
more excel code... 

$writer = new PHPExcel_Writer_Excel5($this->phpexcel); 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment; filename="newFile.xls"'); 
header('Cache-Control: max-age=0'); 
$writer->setPreCalculateFormulas(false); 
$writer->save('php://output'); 

я могу скачать файл, но я попробовал много различных способов, чтобы сохранить файл в папку на сервере, например

$filename = 'file.xls'; 
$writer = new PHPExcel_Writer_Excel5($this->phpexcel); 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment; filename="newFile.xls"'); 
header('Cache-Control: max-age=0'); 
$writer->setPreCalculateFormulas(false); 
$writer->save($filename); 

или использовать PHPExcel_IOFactory, чтобы сохранить файл, но я не могу заставить его работать, та же идея.

Отношения.

+0

У вас есть права на доступ к каталогу? – charlietfl

+0

Да, в каталоге есть 777 разрешений –

+0

Хорошо, если вы сохраняете файл на сервере, нет смысла отправлять заголовки Excel в браузер –

ответ

0

Прошлой ночью я решил эту ошибку.

$writer = new PHPExcel_Writer_Excel5($this->phpexcel); 
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment; filename="newFile.xls"'); 
header('Cache-Control: max-age=0'); 
$writer->setPreCalculateFormulas(false); 

$writer->save(getcwd().'/mailAttachment/newFile.xls'); 

Я добавляю эту строку.

$writer->save(getcwd().'/mailAttachment/newFile.xls'); 

Функция getcwd() получает текущий рабочий каталог.

Спасибо в любом случае.

0

попробовать это:

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); 
header('Content-Disposition: attachment;filename="'.$fname.'"'); 
header('Cache-Control: max-age=0'); 

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); 
$objWriter->save('./files/'.$fname); 
+0

Мне не нужно загружать файл, мне нужно сохранить на сервере файл, созданный phpexcel. –

+0

Я отредактировал свой ответ. –

Смежные вопросы