更改MIMI类型定义?

在使用finfo_open(FILEINFO_MIME_TYPE)时,我曾经使用过不同的MIMI类型。

例如,基于内存,我相信docx是application / vnd.openxmlformats-officedocument.wordprocessingml.document(请参阅此StackOverflow文章什么是docx,pptx等的正确MIME类型?)。 我还记得他们显示为应用程序/ zip,但可能是使用mime_content_type()时。 另外,认为js文件是作为application / x-javascript发布的。

以下是我现在正在与脚本一起展示它们的内容。 我最近更新到PHP 5.14,并想知道是否有新的标准或我是否搞砸了。 我很好,但将不得不改变我的脚本比较扩展到MIMI类型。

编辑 - 在PHP手册中找到以下内容。

从PHP> = 5.3.11和> = 5.4.1开始,魔术数据库格式已经改变。 由于这个原因,内部的mime数据库被升级了。 这尤其影响读取外部魔法的代码。读取旧格式的魔法文件将不起作用。 另外,mime类型的一些文本表示已经改变,例如对于PHP将是“PHP脚本,ASCII文本”而不​​是“PHP脚本文本”返回。

谢谢

基于以下脚本的MIMI列表

- directory
csv - text/plain
doc - application/msword
docx - application/msword
htm - text/html
ini - text/plain
jpg - image/jpeg
js - text/plain
mp3 - application/octet-stream
pdf - application/pdf
php - text/html
pptx - application/vnd.ms-powerpoint
pst - application/octet-stream
so - application/x-sharedlib
txt - text/plain
wmv - video/x-ms-asf
xls - application/msword
xlsx - application/vnd.ms-excel
zip - application/zip

PHP代码

<?php
$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    $files[pathinfo($filename, PATHINFO_EXTENSION)]=array('filename'=>$filename,'finfo'=>finfo_file($finfo, $filename));
}
ksort($files);
foreach ($files as $fileext=>$file) {
    echo ($fileext.' - '.$file['finfo'].'<br />');
}
finfo_close($finfo);
?>

打印的MIME类型将根据系统的配置而有所不同。 如果系统配置为在MSWord中打开.docx文件,那么它将具有application/msword作为MIME类型。 同样,如果将相同的扩展名.docx配置为在LibreOffice中打开,它将具有application/vnd.openxmlformats-officedocument.wordprocessingml.document作为MIME类型。

由于这种对服务器配置的依赖性,mime类型不是很可靠。

链接地址: http://www.djcxy.com/p/45491.html

上一篇: Change in MIMI Type definitions?

下一篇: Mime not working for paperclip