upload-labs靶场Pass-21
$is_upload = false; // 初始化上传状态为false
$msg = null; // 初始化消息变量为null
// 检查是否有文件上传
if(!empty($_FILES['upload_file'])){
// 定义允许的MIME类型
$allow_type = array('image/jpeg','image/png','image/gif');
// 检查上传文件的MIME类型是否在允许的类型中
if(!in_array($_FILES['upload_file']['type'],$allow_type)){
$msg = "禁止上传该类型文件!"; // 如果不允许,设置错误消息
}else{
// 检查文件名,如果没有提供保存名称,则使用上传文件的原始名称
$file = empty($_POST['save_name']) ? $_FILES['upload_file']['name'] : $_POST['save_name'];
// 将文件名按点分割为数组,转换为小写
if (!is_array($file)) {
$file = explode('.', strtolower($file));
}
// 获取文件扩展名
$ext = end($file);
// 定义允许的文件后缀
$allow_suffix = array('jpg','png','gif');
// 检查文件扩展名是否在允许的后缀中
if (!in_array($ext, $allow_suffix)) {
$msg = "禁止上传该后缀文件!"; // 如果不允许,设置错误消息
}else{
// 生成最终的文件名
$file_name = reset($file) . '.' . $file[count($file) - 1];
// 获取临时文件路径
$temp_file = $_FILES['upload_file']['tmp_name'];
// 定义文件上传的目标路径
$img_path = UPLOAD_PATH . '/' .$file_name;
// 尝试将临时文件移动到目标路径
if (move_uploaded_file($temp_file, $img_path)) {
$msg = "文件上传成功!"; // 上传成功,设置成功消息
$is_upload = true; // 更新上传状态为true
} else {
$msg = "文件上传失败!"; // 上传失败,设置错误消息
}
}
}
}else{
$msg = "请选择要上传的文件!"; // 如果没有文件上传,设置错误消息
}