版权声明: https://blog.csdn.net/qq_27987023/article/details/83377877
1,根据 $_FILES 的size,判断用户上传大小是否超过指定大小
2,对文件扩展进行判断,防止用户上传其他类型后缀代码
3,对文件进行重命名,防止用户上传伪装文件,如果 php命令加后缀文件
如果用源生的写法,需要自行判断和进行以上操作,但用tp5的话,很多内容都已经提前被封装好,备注一下:
<?php
public function touxiang_upload(){
if(isset($_FILES) && !empty($_FILES)){
// 移动到框架应用根目录/public/uploads/ 目录下
if($_FILES["file"]["error"]){
return ['code'=>-1,'msg'=>$_FILES["file"]["error"]];
}else{
//加限制条件
//判断上传文件类型为png或jpg且大小不超过2048000B
if(($_FILES["file"]["type"]=="image/png"||$_FILES["file"]["type"]=="image/jpeg") && $_FILES["file"]["size"]<2048000){
//防止文件名重复
$file_name_array = explode(".",$_FILES['file']['name']);
$name = rand(1000,9999).time().rand(1000,9999).".".$file_name_array[1];
$name_file = ROOT_PATH."uploads/touxiang/".$name;
//检查文件或目录是否存在
if(file_exists($name_file)){
echo -2; //该文件已存在,需让用户重新上传
}else{
//保存文件, move_uploaded_file 将上传的文件移动到新位置
move_uploaded_file($_FILES["file"]["tmp_name"],$name_file);//将临时地址移动到指定地址
$image = \think\Image::open(ROOT_PATH.'/uploads/touxiang/'.$name);
$image->thumb(91, 91,\think\Image:: THUMB_SCALING)->save(ROOT_PATH.'/uploads/touxiang/thumb_'.($name));
$thumb_img = '/thumb_'.($name);
echo 1; //上传成功
}
}else{
echo -3; //文件类型不正确或文件偏大
}
}
}
}
?>