来自PHP的mime-type不正确

时间:2011-01-05 17:25:51

标签: php apache

上传在Microsoft Power Point中创建的Power Point 2000文档(.ppt)时,它返回mime类型的application / vnd.ms-office。我希望application / vnd.ms-powerpoint能够从:

回来
    <?php
    $finfo = new finfo(FILEINFO_MIME);
    $mime_type = $finfo->file($filepath);

    // strip off the mime encoding information
    $mime_type = substr($mime_type, 0, strpos($mime_type, ';'));

为什么会出现这种情况?

我正在运行以下内容:

  • Ubuntu的
  • PHP 5.2
  • Apache 2

2 个答案:

答案 0 :(得分:1)

finfo 100%可靠,特别是在涉及Microsoft Office文档时。我不认为你的解决方案有一个简单的解决方案。您可以尝试,如果它返回application/vnd.ms-office,则另外检查文件的扩展名是否为.ppt,如果是,则将mime类型设置为application/vnd.ms-powerpoint。当然,扩展名是没有意义的,但是那些使用微软的人,扩展名.ppt的文件很可能是一个powerpoint,而不是其他任何东西。

答案 1 :(得分:0)

确保Apache MIME类型文件具有该文件扩展名的正确MIME类型。如果它们不存在,您需要查看/conf/mime.types并添加这些行。

application/vnd.powerpoint ppt
application/vnd.powerpoint pptx

进行这些更改后,您需要重新启动Apache。