我在我的网站上有文件上传表格,我检查mime类型的上传文件以允许或拒绝上传。它运行良好,直到我将我的Firefox升级到3.6.11(在ubuntu中)。但现在无法上传Doc文件。我检查了mime类型的文件,但它是'application / x-php'而不是'application / vnd.ms-word'或其他msword mime-types。
我用
echo $_FILES[$fileName]['type'];
看到哑剧型。我从firefox 8和firefox 3.6上传相同的文件,上面代码的输出是:
FireFox 8: application/vnd.ms-word
FireFox 3.6: application/x-php
它是firefox的错误还是我必须更改我的代码?
我使用PHP。
答案 0 :(得分:3)
$_FILES[...]['type']
只是任意的,用户提供的,最佳猜测,不可靠(如您所见)客户端提供的信息,可能与实际文件有关,也可能没有。 永远不要使用它。
尝试在服务器上自己检测MIME类型。例如,技术,请参阅How to get the content-type of a file in PHP?。