Мой клиент использует Joomla 3.7.2, и они используют компонент Zoo от YOOTheme. Они создали приложение, которое, как я считаю, называется на жаргоне, и добавили свойство (элемент), где вы можете скачать файл.
Приложение представляет собой приложение типа статьи, и они использовали элемент загрузки по умолчанию. Я добавил разрешения на загрузку определенных файлов и загрузил файл VCF (файл vCard).
Проблема возникает, когда я загружаю этот файл. Joomla, кажется, добавляет Content-Type: ‘text / x-vcalendar’. Это должно быть ‘text / x-vcard’. Я понятия не имею, где это изменить.
Я добавил этот mime-тип в мой .htaccess, поэтому, когда я напрямую ссылаюсь на файл, apache отправляет правильный заголовок типа содержимого. Поэтому я знаю, что проблема заключается либо в Joomla, либо в функции PHP, которая возвращает неправильный тип MIME.
Где я могу изменить MIME-тип для этих файлов?
Я наконец нашел это. В файле есть функция: /administrator/components/com_zoo/framework/helpers/filesystem.php
В этом файле есть функция getMimeMapping. В нем есть массив со всеми расширениями файлов и типами mime, используемыми для каждого расширения:
$mimes['vcf'][] = 'text/x-vcalendar';
$mimes['vcs'][] = 'text/x-vcalendar';
$mimes['vct'][] = 'text/x-vcard';
Поэтому, очевидно, если я использую расширение vct, оно выведет правильный Content-Type.
Других решений пока нет …