如何确保上传的文件是视频或图片?

时间:2010-04-10 08:10:25

标签: media

我想确保用户上传的文件是真正的视频或图片,而不仅仅是一段重命名为textfile.jpg的文本。有哪些方法可以确保?

我看到唯一的方法:通过它的扩展来检测文件类型,然后根据文件类型,尝试获取有关它的信息(通过Imagemagick或ffmpeg)。

还有其他方法吗?

谢谢。

5 个答案:

答案 0 :(得分:1)

在许多类UNIX系统上,您有file程序来检查文件内容。在我的Ubuntu系统上,这会接受--mime-type标记(Google file的Google搜索是一场噩梦,所以我不会试着查看这是多么标准化):

$ file --mime-type some_image.jpg
some_image.jpg: image/jpeg

您可以轻松解析输出,以查看MIME类型是以image/还是video/开头。

答案 1 :(得分:0)

您可以使用file命令来告诉您文件类型,前提是您在主机上允许您使用PHP system等功能。

答案 2 :(得分:0)

如果mdm的答案不适用于您的情况,那么您可以查看www.wotsit.org - 它提供了大量文件格式的详细信息......

马丁。

答案 3 :(得分:0)

您正在寻找的是通过文件签名识别文件的能力(也称为“魔术数字”)。

file命令提供了此功能,但是,您也可以使用公开的幻数列表自行实现:

FILE SIGNATURES TABLE

答案 4 :(得分:0)

PHP具有内置于5.3的Fileinfo扩展,可通过PECL获得早期版本。它将告诉您文件的MIME类型,以及其他内容:http://php.net/manual/en/book.fileinfo.php