Программно я создаю файл 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. Проверить права на файловую систему.
2. Версии пхп и окружение идентичны?
1. PHPSpreadsheet же.
2. Скорее всего, не подготовленная ФС. Проверяйте наличие директорий, согласно пути. Необходимые права создавайте.
3. Все документы - это сжатые XML-файлы.
папка есть, все права я дал. Что ему еще надо... Пока не пойму
Посмотрите отчёт о состоянии. Обычно если с правами на временную папку что-то не так, то там показывается эта ошибка.
Убрал PHPExcel_Settings::setZipClass(PHPExcel_Settings::PCLZIP); и заработало.