Здравствуйте. С помощью PHPExcel пытаюсь выгрузить файл пользователю:
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($workbook, 'Excel2007');
$objWriter->setPreCalculateFormulas(false);
$objWriter->save('php://output');
Файл выгружается но при открытии выдаёт ошибку. Если я не выгружаю тот самый файл, а сохраняю на диске:
$objWriter = PHPExcel_IOFactory::createWriter($workbook, 'Excel2007');
$objWriter->save("c:\\l\\".$filename);
то файл открывается без проблем. Содержимое выгруженного файла от сохранённого отличается наличием одного пробела в самом начале. Если текстовым редактором удалить этот пробел, то Excel открывает файл без проблем.
Я исследовал метод save и обнаружил, что он в обоих случаях создаёт файл на диске, но в случае необходимости выгрузки, выдаёт его командой:
copy($pFilename, $originalFilename)
где $pFilename - временный файл, $originalFilename - 'php://output'.
Подскажите пожалуйста, где в таком случае, может добавляться пробел в начало файла? И как это исправить?