获取上传图像mime类型是application / octet-stream

时间:2012-04-03 07:18:06

标签: php zend-framework zend-form php-5.3

在上传文件时,我将mime-type视为application / octet-stream。

我已经知道了 Zend_Frameworks尝试以两种方式确定mimetype:

首先它尝试使用PECL FILEINFO-Extension(未在每台服务器上安装)     如果扩展名不是istalled,它会尝试使用mime_content_type(一个php函数)。但是,自php version 5.3起,该函数已被弃用

那么现在该怎么办?我怎样才能确定用户上传文件只是图像而不是其他内容?如何检测mime类型的上传文件?

2 个答案:

答案 0 :(得分:1)

对于图片,您也可以依赖exif_imagetype,但我建议您安装finfo

有关示例实现,请参阅this

答案 1 :(得分:0)

使用Zend_File_Transfer validators排除您不想要的类型:

    $upload = new Zend_File_Transfer();

   // Does not allow MIME type application/pdf and application/zip .
   $upload->addValidator('ExcludeMimeType', false, array('application/pdf',
                                                  'application/zip'));

或者你也可以使用Image validator来检查传输的文件是否是图像文件:

$upload = new Zend_File_Transfer();

// Checks whether the uploaded file is a image file
$upload->addValidator('IsImage', false);