【问题标题】:Getting Upload Image mime type is application/octet-stream获取上传图像 mime 类型为 application/octet-stream
【发布时间】:2012-04-16 20:11:29
【问题描述】:

在上传文件时,我将 mime-type 设置为 application/octet-stream。

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

首先它尝试使用 PECL FILEINFO-Extension(不是在每台服务器上都安装) 如果未安装扩展,它会尝试使用 mime_content_type(一个 php 函数)。但是,从 php 版本 5.3 开始,此函数已被弃用

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

【问题讨论】:

    标签: php zend-framework zend-form php-5.3


    【解决方案1】:

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

    请参阅this 以获取示例实现。

    【讨论】:

      【解决方案2】:

      使用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'));
      

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

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

      【讨论】:

      • oups ,我的意思是 ExcludeMimeType 。
      • 收回我的投票,ExcludeMimeType 方法可能基于finfomime_content_type,所以它不应该工作。 IsImage 验证器应该。
      猜你喜欢
      • 2021-11-15
      • 2015-02-17
      • 2018-09-11
      • 2012-03-31
      • 1970-01-01
      • 2013-08-25
      • 1970-01-01
      • 2011-09-19
      • 2012-01-18
      相关资源
      最近更新 更多