php允许图片上传的后缀
$_FILES
- 上传文件的描述信息,全部保存在系统全局变量$_FILES中
- $_FILES以二维数组形式保存: $_FILES[‘form_file_name’][‘key’]
- ‘form_file_name’: 对应着表单中中name属性值
- ‘key’: 共有 5 个键名, 描述如下:
序号 | 键名 | 描述 |
---|---|---|
1 | name | 文件在客户端的原始文件名(即存在用户电脑上的文件名) |
2 | type | 文件的 MIME 类型, 由浏览器提供, PHP 并不检查它 |
3 | tmp_name | 文件被上传到服务器上之后,在临时目录中临时文件名 |
4 | error | 和该文件上传相关的错误代码 |
5 | size | 已上传文件的大小(单位为字节) |
以下是PHP代码
<?php
//允许图片上传后缀
$allowedExts = array("jpg", "jpeg", "png", "gif");
//获取文件名
$temp = explode(".", $_FILES["file"]["name"]);
echo $_FILES["file"]["size"];
$extension = end($temp);
//判断文件是否合法
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/png")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 2048000) //限制上传文件大小为2MB
&& in_array($extension, $allowedExts)
) {
if ($_FILES["file"]["error"] > 0) {
echo "错误::" . $_FILES["file"]["error"] . "<br>";
} else {
echo "上传文件名" . $_FILES["file"]["name"] . "<br>";
echo "文件类型:" . $_FILES["file"]["type"] . "<br>";
echo "文件大小:" . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "文件临时存储的位置:" . $_FILES["file"]["tmp_name"] . "<br>";
//判断当前upload目录下是否存在该文件
//如果没有upload目录,若没有需要创建它,uoload目录权限为777
if (file_exists("uploads/" . $_FILES["file"]["name"])) {
echo $_FILES["file"]["name"] . " 文件已经存在。";
} else {
//保存文件
move_uploaded_file($_FILES["file"]["tmp_name"], "../../static/uploads/avatar/" . $_FILES["file"]["name"]);
echo "文件存储在: " . "uploads/avatar/" . $_FILES["file"]["name"];
}
}
} else {
echo "非法文件类型或文件大小超过2MB";
}