Мне нужно загрузить файлы XLSX в веб-приложение. Это веб-приложение использует CodeIgniter для проверки и импорта этих файлов.
Кроме того, я должен сгенерировать эти файлы XLSX из другого. Для чтения и записи файлов XLSX я использую Apache Poi. Эта часть довольно проста и хорошо работает.
Но вот моя проблема: при загрузке автоматически сгенерированного файла CodeIgniter отклоняет файлы, говоря, что этот тип файла не разрешен. Вероятно, это отсутствующее свойство, которое не создано библиотекой Apache POI, но мне не удалось найти какое.
Еще один забавный факт заключается в том, что при открытии автоматически сгенерированного файла Apache Poi в Microsoft Excel и последующем сохранении его без каких-либо изменений он получает данные размером около 3Ко и становится действительным для CodeIgniter. Он не работает с LibreOffice Calc, который добавляет некоторые данные, но не так, как Microsoft Excel.
У вас есть представление о том, какое свойство или данные могут отсутствовать? Любой способ решить мою проблему?
Редактировать: после еще нескольких исследований и в соответствии с функцией php finfo_file (используемой CodeIgniter) мой плохой файл имеет следующий тип mime application/octet-stream
, тогда как у легального файла следующий тип mime application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
. Затем я думаю, что у Apache Poi есть какая-то ошибка при генерации XLSX.
Редактировать 2: Наконец, есть 2 типа XLSX (см. Прилагаемый скриншот). Только второй признается application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
finfo_file
. К сожалению, Apache Poi генерирует подпись первого типа. Таким образом, он не распознается как XLSX.