如何在PHP中正确实现一般的Mime类型?

时间:2009-12-26 13:24:09

标签: php

如果单击“查看”,则会在浏览器中打开该文件,

我试过了:

readfile('test.jpg');

但似乎在firefox中失败了。

2 个答案:

答案 0 :(得分:2)

如果你想获取一个文件的mime-type,你至少有两个选项,用PHP:

第一个是使用(现已弃用)函数mime_content_type

  

返回MIME中的内容类型   格式,如text/plain或   application/octet-stream


第二种方法是使用新的Fileinfo扩展名(可用作PHP的PECL扩展名<5.3,并在PHP&gt; = 5.3中集成); finfo_file函数似乎是您需要的函数:

  

返回的文本描述   filename参数的内容,或   如果发生错误,则为FALSE。

给定的例子(引用)

$finfo = finfo_open(FILEINFO_MIME_TYPE); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);

给出这种输出:

text/html
image/gif
application/vnd.ms-excel

哪种类型对应于您的应用程序可能需要发送的Content-type HTTP标头所需的内容; - )

答案 1 :(得分:1)

只需提供该文件的链接,浏览器即可完成剩下的工作。如果此文件存储在您的服务器上,您可能正在寻找一个将其暴露给外部世界的脚本。这个脚本应该设置正确的MIME类型,然后readfile应该这样做。

<?php
header('Content-type: image/gif');
readfile('/path/to.your/file.gif');
exit();