При загрузке документа Power Point 2000 (.ppt), созданного в Microsoft Power Point, он возвращает тип приложения mime / vnd.ms-office. Я ожидаю, что приложение / vnd.ms-powerpoint вернется из:
<?php $finfo = new finfo(FILEINFO_MIME); $mime_type = $finfo->file($filepath); // strip off the mime encoding information $mime_type = substr($mime_type, 0, strpos($mime_type, ';'));
Есть идеи, почему это возможно?
Я запускаю следующее:
finfo
ins't на 100% надежна, особенно когда дело доходит до документов Microsoft Office. Я не думаю, что есть легкое решение для вашего решения. Вы можете попробовать, если он вернет application/vnd.ms-office
, затем дополнительно проверьте, является ли расширение файла .ppt
, и если это так, установите тип mime в application/vnd.ms-powerpoint
. Конечно, расширение бессмысленно, но те, кто использует Microsoft, есть хороший шанс, что файл с расширением .ppt
– это powerpoint, а не что-то еще.
Убедитесь, что файл типов MIME Apache имеет правильный тип MIME для этого расширения файла. Вам нужно посмотреть /conf/mime.types
и добавить эти строки, если они не существуют.
application/vnd.powerpoint ppt application/vnd.powerpoint pptx
После внесения этих изменений вам необходимо будет перезапустить Apache.