【发布时间】:2014-04-04 01:15:16
【问题描述】:
目前我在允许上传之前检查 PHP 中图像的所有元素。但是当涉及到文件扩展名之类的事情时,我有点担心。
我使用以下方法只允许上传某种类型的文件:
$allowed_ext = array("jpeg", "jpg", "gif", "png");
$tmp_ext = explode(".", $_FILES["file"]["name"]);
$ext = strtolower(end($tmp_ext));
if ((($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/jpg")
|| ($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/png"))
&& in_array($ext, $allowed_ext)) {
//Continue
} else {
//Don't allow
}
但这会阻止所有形式的用户自己更改文件扩展名吗?例如如果用户将恶意文件的文件扩展名更改为 .jpeg 或 .png - 这会阻止它吗?
我找不到任何说明这一点的帖子,因此感谢您的帮助!
【问题讨论】:
标签: php image file validation upload