У меня есть форма, которая должна принимать загрузку CVS-файлов. Так я защитил его со следующим:Проблемы с обнаружением типа mime в php
if (!in_array($mimeType, array("text/csv"))) throw new TMSException("Error");
Всех мои тесты прошли хорошо на моем Dev окружающей среды, но теперь я узнал, что на клиенте окон, для точно такого же файла, я получаю другой тип MIME.
Это то, что я получаю при подключении на моем Ubuntu ПК:
/var/www/ct/preinvoice.php:203:
array (size=1)
'tariffLines' =>
array (size=5)
'name' => string 'C&T - Labatut.csv' (length=17)
'type' => string 'text/csv' (length=8)
'tmp_name' => string '/tmp/php2vIcaE' (length=14)
'error' => int 0
'size' => int 3812
И это то, что я получаю при попытке загрузить тот же файл с компьютера Windows:
/var/www/ct/preinvoice.php:203:
array (size=1)
'tariffLines' =>
array (size=5)
'name' => string 'C&T - Labatut.csv' (length=17)
'type' => string 'application/vnd.ms-excel' (length=24)
'tmp_name' => string '/tmp/phpPaMvN3' (length=14)
'error' => int 0
'size' => int 3812
Любой Ideia почему PHP обнаруживает другой тип mime для того же файла? И как я могу это решить?
Тип мим не может быть «текст/CSV» некоторые системы чтения/сохранить их по-разному. (Internet Explorers рассматривает файлы .csv как application/vnd.ms-excel) – Svekke
Привет! Я тестирую загрузку с тем же файлом и с хромом как в среде, так и в окнах, $ _FILES ["file"] ["type"] является 'application/vnd.ms-excel'; Я предполагаю, что мне придется использовать другой подход –
Клиент устанавливает тип MIME. Вы не контролируете его. – zeroflagL