php - file->getMimeType() 始终使用 Zend Framework 返回 application/octet-stream

标签 php zend-framework mime-types file-upload

我的文件表单元素非常简单:

$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/

相关文章:

javascript - Mysqli 查询从数据库中返回一行简单的字符串的空值

zend-framework - 使用 jQuery Form Plugin 解析 JSON 对象时出错

Python:在 Linux 上更改指定 MIME 类型的默认应用程序

php - 没有给出 mime 类型

php mongodb 只插入唯一值?

php - NGINX 允许带有下划线的 header

php - Zend_Db_Abstract 子类(模型)

HTML 链接标记是否需要 mime 类型?

javascript - 使用 PHP 和 JavaScript 从心跳列表构建正常运行时间图

php - 如何检测 iPhone 是否具有视网膜显示屏?