stream_resolve_include_path возвращает false?

У меня есть fieldset, который реализует InputFilterProviderInterface, мой getInputFilterSpecification функция выглядит так:

public function getInputFilterSpecification() {
$validator = new \Zend\Validator\File\Extension([
'jpg',
'jpeg',
'png',
'gif',
]);
return [
[
'name' => 'logo',
'required' => false,
'validators' => [
$validator,
],
],
];
}

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

Моя проблема в том, что валидатор выдает сообщение об ошибке

Файл не читается или не существует

Глядя в Extension класс я нашел функцию, которая вызывает проблему: stream_resolve_include_path($file), Когда я var_dump $file Я получаю следующий вывод:

C: \ Windows \ Temp \ php6BE7.tmp

Итак … Почему stream_resolve_include_path не в состоянии решить этот путь? Как мне это исправить?

В настоящее время он работает на виртуальной машине Windows. Это часть проблемы? т.е. вышеуказанная функция работает только на совместимых операционных системах?

-2

Решение

Краткосрочное решение — расширить валидатор и перезаписать isValid функция.

Найдите строку:

if (empty($file) || false === stream_resolve_include_path($file)) {

и заменить его на:

if (empty($file) || false === is_file($file)) {

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]