一尘不染

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

php

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

因此,我经常使用一些“严格”的MIME类型检查。当然,这是非常有缺陷的,因为通常哑剧类型是错误的,并且用户无法上传其文件。伪造和/或更改也非常容易。除此之外,每种浏览器和操作系统对它们的处理方式也不同。

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

如果只需要图像,则可以使用类似的方法getimagesize()

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

编辑: 如果您没有mime_content_type或Fileinfo,并且system(“ file-bi$uploadedfile”)给您错误的文件类型,还有哪些其他选择?


阅读 294

收藏
2020-05-26

共1个答案

一尘不染

看一下mime_content_type或Fileinfo。这些是内置的PHP命令,用于通过查看文件内容来确定文件的类型。还要检查以上两页上的评论,还有其他一些好的建议。

就我个人而言system("file -bi $uploadedfile"),使用本质上是的东西我很幸运,但是我不确定这是否是最好的方法。

2020-05-26