Как сохранить файл созданный с помощью PHPExcel?

15 декабря 2018 в 15:14
Аватар пользователя pingvin156 pingvin156 0 5 Решено

Программно я создаю файл Excel. Далее его необходимо сохранить. На рабочей станции у меня работает сохранение:

PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP);
$objWriter = PHPExcel_IOFactory::createWriter($phpexcel, 'Excel2007');
$basename = transliterate("Attachment-".str_replace("\\", "-", str_replace("/", "-", $agreement->sNumber)) . '-' . $agreement->dCreate."-".date("M-d-Y-h-m-s").".xlsx");
$filename = \Drupal::service('file_system')->realpath(file_default_scheme() . "://") . "/OrderAttachments/" . $basename;
$objWriter->save($filename);

А на сервере вылетает в ошибку:

PHPExcel_Writer_Exception: Error zipping files : PCLZIP_ERR_MISSING_FILE (-4) : File '/[Content_Types].xml' does not exist in PHPExcel_Shared_ZipArchive->addFromString() (line 96 of /var/www/user18184/data/www/500services.com/PHPExcel/Classes/PHPExcel/Shared/ZipArchive.php).

Что это за xml-файл, я так и не понял.

Комментарии

1. PHPSpreadsheet же.
2. Скорее всего, не подготовленная ФС. Проверяйте наличие директорий, согласно пути. Необходимые права создавайте.
3. Все документы - это сжатые XML-файлы.

15 декабря 2018 в 17:24

Посмотрите отчёт о состоянии. Обычно если с правами на временную папку что-то не так, то там показывается эта ошибка.

16 декабря 2018 в 16:41