PHP对apk文件的Mime类型

5
为什么PHP方法$mime = mime_content_type($filename);对于apk文件会返回mime-type = application/zip?我已在.htaccess中定义了apk的mimetype。 .htaccess
<IfModule mod_mime.c>
    AddType application/vnd.android.package-archive     apk
    AddType application/apk                             apk
    AddType application/java-archive                    jar
</Ifmodule>

<FilesMatch \.apk$>
    SetHandler application/vnd.android.package-archive
</FilesMatch>

我已尝试下面提供的所有解决方案,但仍然没有解决问题。关于此需要帮助。


请将以下行添加到您的htaccess文件中:AddType application/vnd.android.package-archive apk我的意思是不要使用任何表格或条件语句。谢谢 Amit - Amit Shah
尝试过了,但仍然出现应用程序/zip的问题。 - Haridarshan
是否启用 mime_magic_module 模块? - miken32
在“已加载的模块:mod_mime_magic和mod_mime_mod”下显示。 - Haridarshan
有其他建议吗? - Haridarshan
1个回答

3

这是因为mime_content_type没有受到.htaccess的影响。然而,文档指定可以设置magic.mime文件:

string mime_content_type ( string $filename )

使用magic.mime文件的信息确定文件的MIME内容类型。

还有一个finfo_open(PECL)函数,它有$magic_file作为参数。


此外,当我通过 PHP 运行此命令 $command = "file -b --mime-type -m /etc/magic {$filename}"; 时,我会得到 application/octet-stream 的 mime 类型。 - Haridarshan
我尝试过这个 $finfo = new finfo(FILEINFO_MIME, "/etc/magic");,输出结果也是 application/octet-stream; charset=binary - Haridarshan
我已经查看了魔术文件,但没有找到 application/vnd.android.package-archive 的魔术数据。我该如何获取此MIME类型的正确数据集,以便将其添加到魔术文件中? - Haridarshan
2
这是我在搜索 /etc/magic 文件格式时找到的最新进展:http://askubuntu.com/questions/427509/file-mime-type-vs-mimetype-for-php-files ... 然而,问题变得越来越复杂。我会通过检查文件名的最后4个字符(如果等于.apk)来解决您的问题。最终,这也是您想要实现的目标。 - MartyIX
感谢Martin的帮助。这是我将使用的最后一个解决方案。 - Haridarshan
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接