如何知道您强制用户下载的文件的文件类型?

时间:2010-05-25 07:54:41

标签: php file-handling

我试图强制用户下载文件。为此我的脚本是:

$file = "file\this.zip";        
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip"); //This is what I need
header("Content-Transfer-Encoding: binary");
readfile($file);

我要上传的文件不是.zip,所以我想知道我要在$ file中收到的图像的内容类型。 如何完成这个

5 个答案:

答案 0 :(得分:5)

我总是把application/octet-stream(或者像这样的somwething),因为浏览器无法以任何方式尝试显示它,它总是强制用户保存/运行,然后经常推断出文件类型通过扩展。

答案 1 :(得分:2)

对于图像,最可靠的是getimagesize()。对于任何其他类型,Fileinfo函数是正确的。

我认为ck说的是:在强制下载时,octet-stream是防止在浏览器或相应客户端应用程序中打开内容的最佳选择。

答案 2 :(得分:0)

嘿,在下面的链接中,您可以看到所需内容类型的值:

Internet Media Type

这里列出的太多了 拉吉斯拉夫

答案 3 :(得分:0)

好的,我自己做了。

我用过

$type = filetype($file); //to know the type

答案 4 :(得分:0)

您需要在那里发送 mime-type 。您可以使用mime_content_type函数在PHP中获取此信息。还有Fileinfo扩展,它提供了获取大量文件信息的方法,包括mime类型。