1. PHP限制上传文件类型
在web开发过程中,我们经常需要上传文件,但是用户上传文件的类型我们是需要加以限制的,例如禁止上传.exe、.sh等脚本文件,这是为了防止用户上传恶意代码,增加网站被攻击的风险。
PHP提供了一个文件上传的类,即$_FILES
。使用$_FILES
进行文件上传时,需要获取上传文件的名字、类型、大小等信息,代码如下:
if(isset($_FILES['myFile'])){
$file = $_FILES['myFile'];
//获取文件名
$fileName = $file['name'];
//获取文件类型
$fileType = $file['type'];
//获取文件大小
$fileSize = $file['size'];
}
在通过$_FILES
获取文件相关信息之后,我们需要判断文件类型是否符合要求。
2. PHP限制上传文件类型并保存上传文件
2.1 限制文件类型
为了限制上传的文件类型,需要通过$_FILES
获取文件类型,并且与允许上传的文件类型进行比对。如果文件类型不在允许列表之内,则禁止上传文件。代码如下:
$allowTypes = array('image/png', 'image/jpeg', 'image/gif');
if(in_array($fileType, $allowTypes){
// 上传文件的操作
}else{
echo '文件类型不正确';
}
上述代码定义了允许上传的文件类型为png
、 jpeg
和gif
,使用in_array()
判断上传文件类型是否在允许列表内。
2.2 限制文件大小
为了增加系统安全性和节省存储空间,我们一般也需要对上传文件的大小进行限制。代码如下:
$maxSize = 1024 * 1024; //1M
if($fileSize > $maxSize){
echo '文件过大';
}
上述代码定义了允许上传文件的最大值为1M,使用$fileSize
获取上传文件的大小,与$maxSize
进行比较。
2.3 保存上传文件
在上传文件的过程中,我们需要将上传的文件保存到服务器上。可以使用move_uploaded_file()
函数将文件从临时目录中移动到指定的目录下。代码如下:
if(move_uploaded_file($file['tmp_name'], './uploads/'.$fileName)){
echo '文件上传成功';
}
上述代码将上传的文件从临时目录中移动到./uploads
目录下,并且$fileName
为上传文件的名称。