简单的上传表格和双重延伸

时间:2016-08-29 14:07:43

标签: php file-upload

我制作了一个简单的上传表单,但当我尝试上传某些内容时,该文件的名称会发生​​变化(例如photo.jpg>> photo.jpg.jpg - 双重扩展名。)

我的代码:

$place = realpath($_SERVER["PHP_SELF"]);
$name = $place.$_FILES['file']['name'];
$f1 = strchr($name,'.');
$f2 = strtolower($f1);
$name = $place.$name.$f2;

if ($_POST['up']) {

    if (file_exists($name)) {
        echo '[-] The File  Already Exist ! ';
    } else {
        $upload = move_uploaded_file($_FILES['file']['tmp_name'],$name);
    }
    if (isset($upload)) {
        echo '[+] The File "'.$_FILES['file']['name'].'" uploaded succsessfully';           
    }
}

1 个答案:

答案 0 :(得分:0)

这是因为您创建$name变量的方式。

首先创建$name = $place.$_FILES['file']['name'];其中$_FILES['file']['name']是文件的全名。随着扩展。

之后你说$name是路径(没有逻辑),你再次添加文件的全名和扩展名。只需删除第二个$name = $place.$name.$f2;

即可