@ukoHka
Всего понемногу

Как загрузить сгенерированный в PhpWord файл на сервер в Yii2?

Загружаемый файл UploadedFile() не проходит валидацию по расширению docx.
public function rules()
    {
        return [
            [['imageFile'], 'file', 'skipOnEmpty' => false, 'extensions' => 'pdf, png, jpg, docx'],
        ];
    }

При этом
Yii::trace($this->imageFile->extension);
Yii::trace(FileHelper::getMimeType($this->imageFile));

выдают docx и
application/vnd.openxmlformats-officedocument.wordprocessingml.document
соответственно, а Yii::trace($this->getErrors()); выдает
[
    'imageFile' => [
        'Only files with these extensions are allowed: pdf, png, jpg, docx.',
    ],
]

Здесь пишут, что идет проверка по mime-type, но mime-type выводится корректный.

Если сохранить файл в MS Word как Strict docx, файл проверку проходит.
  • Вопрос задан
  • 424 просмотра
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik Куратор тега Yii
Добрый день.
Вы про PHPOffice/PHPWord?
Если да, то у меня тоже возникала подобная проблема с docx, когда пытался разобраться с этой библиотекой. Проблему я так и не решил, скорей всего из-за заморочек структуры файла.
Попробуйте добавить в условие валидации doc, может пройдёт.
Если пользоваться LibreOffice, то проблем не возникает, насколько я помню))) Хорошо генерирует odt и хорошо читает.

p.s. Сама библиотека сыровата, помнится, что я там что-то дорабатывал для работы с таблицами.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы