我的文件表单元素非常简单:
$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,无论我尝试上传哪种类型的文件。
为什么会这样,我是不是错过了什么?谢谢
最佳答案
最可能的原因是,如果 fileinfo 或 mime_magic 扩展在您的 PHP 安装中都不可用,您正在使用的底层方法将退回到默认的 mimetype:
if (empty($result[$key])) {
$result[$key] = 'application/octet-stream';
}
建议您检查 Zend_File_Transfer_Adapter_Abstract 中的 getMimeType() 方法 - 该片段来自于 Zend_Form_Element_File::getMimeType() 中并从中调用 - 以获取详细信息,然后检查您安装了哪些扩展并适本地纠正。
关于php - file->getMimeType() 始终使用 Zend Framework 返回 application/octet-stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2374061/