Сегодня я имел MediaWiki. Точнее, напротив -- это она имела меня. Хочу загрузить в wiki файлик plot.png, вполне себе такой валидный файлик -- ан нет, пишет, что "The file is corrupt or has an incorrect extension. Please check the file and upload again".
Методом последовательных приближений было выяснено, что виновата функция MediaWiki MimeMagic::guessMimeType(), точнее, функция PHP mime_content_type(), а если совсем точно, то файл /etc/httpd/conf/magic, предоставляемый вовсе даже не PHP, а Apache.
Так вот, в этом файлике нет никаких упоминаний про PNG, ввиду чего тип нашего файла определяется как text/plain, что порождает внутри кода MediaWiki классовое противоречие, ибо MIME-тип text/plain никак не конгруэнтен расширению PNG. Противоречие сиё она разрешает очень просто -- загрузить файлик не даёт, ругается (см. выше).
Решение очень просто -- выцарапать строчку про png из /usr/share/magic.mime (файл любезно предоставлен утилитой file, точнее, пакетом file-libs) и вписать её в вышеупомянутый /etc/httpd/conf/magic:echo "0 string \x89PNG image/png" >> /etc/httpd/conf/magic
Для проверки:echo '<? echo mime_content_type("/path/to/your/plot.pn
image/png
Update: ваша mediawiki, вероятно, крутится под mod_php в Апаче. Чтобы изменения в magic подхватились, Апача надобно перестартовать.
|
howto fix mediawiki png uploads
howto set up pidgin to send using Ctrl+Enter
Всем мне нравится pidgin, очень хороший клиент, только я привык иметь возможность вставлять новую строчку в сообщение по Enter, а отправлять сообщение по Ctrl+Enter. |