Zend Framework не может определить mime-тип загрузки изображения

#zend-framework

#zend-framework

Вопрос:

Всем привет, я пытаюсь загрузить изображение при создании элемента в моем приложении, однако действие завершается неудачей, возвращая следующую ошибку: mimetype файла ‘mytestimage.jpg ‘не удалось обнаружить. Я пытался добавить средство проверки типа Mime, но ошибка сохраняется, кто-нибудь может сказать мне, где я ошибаюсь в приведенном ниже коде.

 // Image uploads
$images = new Zend_Form_Element_File('images');
$images->setMultiFile(2)
       ->addValidator('IsImage')
       ->addValidator('Size',false,'5242880')
       ->addValidator('Extension',false,'jpg,png,gif')
       ->addValidator('ImageSize',false,array(
                 'minwidth' => 250,
                 'minheight'=>250,
                 'maxwidth'=>500,
                 'maxheight'=>500
                 ))
       ->setValueDisabled(true);
  

Заранее большое спасибо.

Грэм

Ответ №1:

У меня была такая же проблема.

Zend_Frameworks пытается определить mimetype двумя способами:

  • Сначала он пытается использовать расширение PECL FILEINFO (которое установлено не на каждом сервере)
  • если расширение не установлено, оно пытается использовать mime_content_type (функцию php). Однако эта функция устарела с версии php 5.3

Итак, в этом случае, я предполагаю, что ваш хостер использует php версии 5.3 и не установил расширение PECL FILEINFO. К сожалению, то же самое касается моего хостера: (

Вот более подробная информация о двух способах в руководстве по php:

Кстати. Вы можете увидеть код, который ZF использует в файле «ZendFileTransferAdapterHttp.php » (строки 1281-1318: имя метода равно _detectMimeType

Комментарии:

1. Извините, я хотел сказать, что это также происходит на моем локальном хостинге (компьютер win7) Я посмотрю на свой локальный php-файл (5.3.5). Я посмотрю, как загрузить это расширение в мой конфигурационный файл php.

2. загрузка расширения в мой локальный php-файл сработала, я рассмотрю это с моим хостером и посмотрю, какую версию php они используют.

3. Я рад, что смог вам помочь. Надеюсь, ваш хостер установит его для вас. Приветствия 🙂