我的文件表单元素非常简单:
$this->archivo = new Zend_Form_Element_File('archivo');
$this->archivo->setLabel('Archivo:')
->setRequired(true)
->setDestination(UPLOAD_PATH)
->addValidator('Count', false, 1)
->addValidator('Size', false, MAX_FILE_SIZE)
->addValidator('Extension', false, Application_Form_Multimedia_SubirArchivo::EXTENSIONES_PERMITIDAS);
$this->addElement($this->archivo);
但是,在上传文件时(上传正常),我尝试获取MIME类型,但每个文件都是相同的:
$form->archivo->getMimeType()
无论我尝试上传哪种文件,它总是返回application / octet-stream。
为什么会发生这种情况,我错过了什么吗?谢谢
最佳答案
造成这种情况的最可能原因是,如果PHP安装中没有fileinfo或mime_magic扩展名,则您所使用的基础方法将回退到默认的mimetype:
if (empty($result[$key])) {
$result[$key] = 'application/octet-stream';
}
建议您检查Zend_File_Transfer_Adapter_Abstract中的getMimeType()方法(该片段来自Zend_Form_Element_File::getMimeType()并在其中调用)以获取详细信息,然后检查已安装的扩展名并进行适当的纠正。