在上传文件时,我将mime-type视为application / octet-stream。
我已经知道了 Zend_Frameworks尝试以两种方式确定mimetype:
首先它尝试使用PECL FILEINFO-Extension(未在每台服务器上安装) 如果扩展名不是istalled,它会尝试使用mime_content_type(一个php函数)。但是,自php version 5.3起,该函数已被弃用
那么现在该怎么办?我怎样才能确定用户上传文件只是图像而不是其他内容?如何检测mime类型的上传文件?
答案 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);