2012-01-08 51 views
1

我有我的网站上的文件上传的表格,我检查MIME类型的上传文件,以允许或拒绝上传它。它运行良好,直到我已经将我的Firefox升级到3.6.11(在Ubuntu中)。但是现在上传文档文件是不可能的。我检查了MIME类型的文件,但它是'application/x-php'而不是'application/vnd.ms-word'或其他msword mime-types。错误的MIME类型在上传的文件

我用

echo $_FILES[$fileName]['type']; 

看到MIME类型。我上传从Firefox 8和Firefox 3.6及以上代码的输出相同的文件是:

FireFox 8: application/vnd.ms-word 
FireFox 3.6: application/x-php 

它是火狐的一个bug或我不得不改变我的代码?

我使用PHP。

+1

*您是如何检查MIME类型的? – deceze 2012-01-08 05:14:29

+0

我们可以看到你的代码吗? – 2012-01-08 05:16:14

+0

我已经写了一个函数,但为了调试,我只是echo $ _FILES [$ fileName] ['type'] – 2012-01-08 05:16:20

回答

3

$_FILES[...]['type']只是随意的,用户提供的,最好的猜测,不可靠的(如你所见)客户提供的信息,可能与实际文件无关。 千万不要使用它。

尝试在服务器上自己检测MIME类型。例如技术,请参阅How to get the content-type of a file in PHP?

+0

哦,是的,我上传了一个错误地命名为* .jpg和'$ _FILES ['] ['键入']'错误地报告了'image/jpeg'。 – lolesque 2012-10-19 10:26:07