Баг с определением mime type при загрузке файлов?
Added by Александр Махомет over 1 year ago
Приветствую!
Возникла проблема при загрузке файлов и настройке ограничений на типы загружаемых файлов.
Есть текущая версия ElFinder 1.1 (2010-03-22)
Есть локальный компьютер, Windows, PHP 5.2.12
НЕ установлены расширения Mimetype и Fileinfo (Приложение предполагается для распространения, не известно будет ли поддержка этих расширений)
Настройки коннектора
1 'uploadAllow' => array('image'),
2 'uploadDeny' => array('all'),
3 'uploadOrder' => 'deny,allow',
4 'mimeDetect' => 'auto'
Хочу загружать только изображения.
Так как выше указанных PHP расширений нет, и OS Windows
функция _getMimeDetect возвращает internal, то есть будет определение по расширению файла.
Но в функции _isUploadAllow есть такие строчки
1 $mime = $this->_mimetype($this->_options['mimeDetect'] != 'internal' ? $tmpName : $name);
Если $this->_options['mimeDetect'] равен internal то все ок, так как в функцию $this->_mimetype() передается реальное имя файла, с корректным расширением.
Если же стоит auto как у меня, то в функцию $this->_mimetype() передается временный путь с расширением .tmp а далее метод определяется как internal, а расширение tmp не зарегистрировано, в общем получаем что никакие файлы загрузить не возможно.
Это ожидаемое поведение?
Replies (3)
RE: Баг с определением mime type при загрузке файлов?
-
Added by Troex Nevelin over 1 year ago
Хитрый баг вы нашли, это конечно нужно исправить, но пока не ясно как. Вам пока рекомендую установить всё же mimeDetect = internal. Проблема что у нас нет метода чтобы выичслить какой метод используется для получения mimetype... а скорее всего есть смысл вычислять метод получения mimetype ещё в конструкторе, чтобы повторно не делать его в вызов в _mimetype. Надо заявку накидать на этот счёт...
RE: Баг с определением mime type при загрузке файлов?
-
Added by Troex Nevelin about 1 year ago
поковырялся в этой проблеме - ошики здесь нет
Обратите внимание:
$this->_options['mimeDetect'] != 'internal' ? $tmpName : $name
если mimeDetect не равен internal тогда использует tmpName, иначе name
Тестил на линуксе:
tmpName: /tmp/phpvTrNJH name: redken in bristol.doc
Всё работе как нужно, скорее всего проблема в другом
RE: Баг с определением mime type при загрузке файлов?
-
Added by Den - about 1 year ago
Заработало как по маслу, когда выставил в режим
'mimeDetect' => 'internal'
(1-3/3)