2010-05-08 4 views
0

J'écris un petit script pour télécharger et détecter le type MIME, en utilisant Zend Framework. Pour la conception, je ne peux pas utiliser Zend_Form mais normal à la place. Et je m'applique simplement à partir du manuel:Impossible de détecter le type MIME lors de l'utilisation de Zend Zend_File_Transfer_Adapter_Http!

$ adapter = new Zend_File_Transfer_Adapter_Http(); $ files = $ adapter-> getFileInfo(); $ mime = $ files-> getMimeType();

Mais le système informe que la fonction getMimeType() n'existe pas. Ensuite, j'ai essayé:

$ adapter = new Zend_File_Transfer(); $ files = $ adapter-> getFileInfo(); $ mime = $ files-> getMimeType();

Cette fois, cela n'a pas fonctionné non plus. Alors, comment puis-je obtenir le type MIME?

Merci beaucoup pour votre aide

Répondre

1

je crois $files dans vos deux extraits serait tout simplement être un simple array, et chaque élément doit contenir une clé pour indiquer le type, comme ceci:

$files = $adapter->getFileInfo(); 

foreach ($files as $file) { 
    // Print the MIME Type for $file 
    echo $file['type']; 
} 

La classe Zend_File_Transfer_Adapter_Abstract définit le code de détermination du type MIME. Cela dépend de Fileinfo classe/extension ou la fonction mime_content_type() (partie d'une ancienne version de Fileinfo, je crois).

http://us2.php.net/manual/en/book.fileinfo.php

PHP 5.3 inclut Fileinfo par défaut. Les versions antérieures à 5.3 nécessitent l'utilisation de l'extension PECL:

http://pecl.php.net/package/Fileinfo

+0

Salut awgy, Merci pour votre conseil, j'ai essayé, il a travaillé, mais même je téléchargé un fichier PDF ou JPEG, il encore reconnu comme " application/octet-stream ". Je développe sur MAC, mais j'ai testé sur une boîte CentOS avec PHP 5.2.x. Dois-je installer quoi que ce soit pour reconnaître un type MIME correct? – mrblue

+0

Ajout d'informations supplémentaires sur le support de détection MIME - laissez-moi savoir si cela ne fonctionne pas pour vous. – awgy

+0

Salut awgy, Bien que je ne pouvais pas installer le package Fileinfo sur MAC, j'ai essayé sur ma boîte CentOS, et il reconnaît toujours seulement un fichier PDF en tant que "application/octet-stream". J'ai essayé de redémarrer Apache pour essayer à nouveau mais je n'arrive pas à l'obtenir. Merci beaucoup. – mrblue

Questions connexes