Загрузка изображения с помощью Zend Form при определении расширения изображения - PullRequest
0 голосов
/ 23 октября 2011

У меня проблемы с определением типа файла изображения, загруженного с помощью Zend Framework. Каждый раз, когда я пытаюсь определить тип файла с помощью $ _FILES ['File'] ['type'], я всегда получаю applicationoctet-stream . Только когда я определю тип, прежде чем проверять, опубликована ли форма, я получаю правильное расширение. Кто-нибудь знает почему? Есть ли лучший способ справиться с этим?

это работает:

$form = new Form_Reg;
$this->view->Reg = $form;
if(isset($_FILES['File']['type'])){
    $filetype = $file = $_FILES['File']['type'];
    }

        if ($this->getRequest()->isPost()){

            $formData  = $this->_request->getPost();
            if($form->isValid($formData)){

                echo $filetype;
                exit;


        }
    }

Это не работает:

    $form = new Form_Reg;
$this->view->Reg = $form;




        if ($this->getRequest()->isPost()){

            $formData  = $this->_request->getPost();
            if($form->isValid($formData)){
                $filetype = $file = $_FILES['File']['type'];
                echo $filetype;
                exit;


        }
    }

1 Ответ

1 голос
/ 26 октября 2011

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

Хитрость была в том, чтобы настроить php.ini, найти его и раскомментировать: extension = php_fileinfo.dll.

Тем не менее, мне интересно, для чего zend_form нужна эта fileinfo, глобальная переменная $ _FILES работает без fileinfo.

...