Получение MIME-типов через FTP в PHP - PullRequest
0 голосов
/ 29 мая 2009

Я пишу объект на PHP, который отображает файлы на FTP-сервере. Я использую встроенные в PHP функции FTP для получения большинства деталей, которые мне нужны (имя файла, размер, последнее изменение и т. Д.). Тем не менее, нет никаких функций, чтобы получить MIME-тип файла на сервере. Я пробовал два разных метода, которые работают, но у меня есть некоторые проблемы.

Использование fileinfo следующим образом занимает 34 секунды, чтобы получить mime-типы из 10 файлов:

$finfo = new finfo(FILEINFO_MIME);
$mime_type = $finfo->file('ftp://username:password@host/path/file');

Использование mime_content_type () для того же действия занимает всего 6 секунд:

$mime_type = mime_content_type('ftp://username:password@host/path/file');

Здесь есть две проблемы, с которыми мне нужна помощь. Первое - это безопасность. При использовании любого из этих методов данные для входа в систему передаются в виде обычного текста (конечно, FTP по своей природе небезопасен, но это только усугубляет ситуацию). Второй вопрос - это скорее лучшая практика. Очевидно, что mime_content_type () является лучшим из этих двух методов, потому что он работает намного лучше, но не рекомендуется. Есть ли лучший и потенциально более безопасный способ сделать это? Я не могу ничего установить на FTP-сервер, поскольку он предназначен для использования на любом FTP-сервере, который хочет его использовать, поэтому об использовании веб-службы не может быть и речи.

Спасибо заранее, ~ Джеймс Армес

1 Ответ

3 голосов
/ 29 мая 2009

Причина задержки заключается в том, что вам нужно прочитать волшебный байт каждого файла и использовать волшебный файл вашего сервера, чтобы определить, какой это тип.

Итак, вы открываете передачу по FTP и читаете эту информацию, что не так быстро в FTP.

...