为了准确确定已上传的内容,您无需检查文件扩展名或 浏览器 发送的 mime 类型。
在 *nix 环境中,您拥有检查给定文件的 mime 类型的实用程序,通常位于 magic.mime 文件(/usr/share/magic.mime 或类似文件,取决于您的设置)。
从 magic.mime 中复制/粘贴,以便您简要了解它的工作原理:
# Magic data for KMimeMagic (originally for file(1) command)
#
# Note on adding additional MIME types:
#
# [RFC2045,RFC2046] specifies that Content Types, Content Subtypes, Character
# Sets, Access Types, and conversion values for MIME mail will be assigned and
# listed by the IANA.
# http://www.iana.org/assignments/media-types/
#
# Any unregistered file type should be listed with a preceding x-, as in
# application/x-foo (RFC2045 5.1), or a x., as in application/x.foo (RFC4288
# 4.3). Any non x-prefixed type should be registered with IANA and listed at
# the above address. Any other behavior is a MIME standards violation!
#
# It is preferred that when a registered MIME type exists, that
# the registered Content-Type and Subtype be used to refer to a file of
# that type, so don't use application/x-zip when application/zip is
# registered.
#
# If an active RFC suggests that a MIME registration for a new type is in
# progress, make a note of it pointing to that RFC.
#
# The format is 4-5 columns:
# Column #1: byte number to begin checking from, ">" indicates continuation
# Column #2: type of data to match
# Column #3: contents of data to match
# Column #4: MIME type of result
# Column #5: MIME encoding of result (optional)
我将为您提供一个链接,该链接将帮助您在 PHP 中进一步实现(字面意思是 2 行代码,一旦您完成)。
如果您在所有这些之后仍无法使其正常工作,请在 cmets 中发布,我将提供安全检测已上传内容所需的完整代码。
Fileinfo