Getting Upload Image mime类型为application/octet流


Getting Upload Image mime type is application/octet-stream

上传文件时,我得到的mime类型为application/octet流。

我知道了Zend_Frameworks试图通过两种方式确定mimetype:

首先,它尝试使用PECL FILEINFO扩展(不是每个服务器上都安装)如果扩展没有安装,它会尝试使用mime_tent_type(一个php函数)。但是,自php 5.3版起,该函数已被弃用

那么现在该怎么办呢?我如何才能确保用户上传的文件只是图像,而不是其他东西?如何检测上传文件的mime类型?

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

有关示例实现,请参见此。

使用Zend_File_Transfer验证器排除您不想要的类型:

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

或者你也可以使用IsImage验证器来检查传输的文件是否是图像文件:

$upload = new Zend_File_Transfer();
// Checks whether the uploaded file is a image file
$upload->addValidator('IsImage', false);
相关文章: