PHP中如何检查上传文件的文件类型?

在PHP官网上,他们建议的唯一实际检查是使用is_uploaded_file() move_uploaded_file()这里。当然,出于各种原因,您通常不希望用户上传任何类型的文件。

因此,我经常使用一些“严格”的mime类型检查。当然这样会有很大的问题,因为mime类型通常是错误的,这样,用户就无法上传他们的文件了。伪造和/或改变mime类型也很容易的。除此之外,不同的浏览器和操作系统都以不同的方式处理它们。

另一种方法是检查扩展,当然比mime类型更容易改变。

如果您只想要图片,那么使用 getimagesize()之类的方法就可以了。

那么其他类型的文件呢? PDF,Word文档或Excel文件?甚至是文本文件?

修改:如果你没有 mime_content_type Fileinfo ,system("file -bi $uploadedfile")给你的文件类型上错误的,这还有其他的选择吗?

6个回答