几年前有一种观点认为,$_FILES[$file]['type'] 包含从浏览器发送的 mimetype,但不是真正的 mimetype,例如这里:
http://php.net/manual/ru/reserved.variables.files.php#109902
还是这样吗?我还需要使用 fileinfo 扩展名来检测 mimetype 吗?(我正在使用 php5.4)
几年前有一种观点认为,$_FILES[$file]['type'] 包含从浏览器发送的 mimetype,但不是真正的 mimetype,例如这里:
http://php.net/manual/ru/reserved.variables.files.php#109902
还是这样吗?我还需要使用 fileinfo 扩展名来检测 mimetype 吗?(我正在使用 php5.4)
是的,type
由浏览器提供的数据填充。
从关于POST 方法上传的手册页:
$_FILES['userfile']['type']
文件的 MIME 类型(如果浏览器提供此信息)。一个例子是"image/gif"。然而,这种 mime 类型在 PHP 端没有被检查,因此不要认为它的价值是理所当然的。
是的,情况仍然如此。这type
是客户端提供的 MIME 信息。
我总是为此使用 fileinfo,但如果您使用 flash 上传器,您可能会发现几乎所有使用 flash 上传器上传的文件都被检测为application/octet-stream
.
因为这个......我还有一个“从扩展名检测mimetype”方法,如果文件被application/octet-stream
fileinfo检测到,它将检查它的扩展名并尝试确定真正的文件类型。