如何使用php将文件上传到特定文件夹

时间:2017-01-30 16:53:32

标签: php

我尝试使用php上传和重命名图像文件,但他没有将文件移动到我想要的文件夹中。有人能告诉我代码有什么问题吗?

        $filename = $_POST["avatar"];
    $expl = explode('.', $filename);
    $file_basename = $user; // give new name
    $file_ext = $expl[1]; // get file extention
    $filesize = $_FILES["avatar"]["size"];
    $allowed_file_types = array('gif', 'jpg', 'pjpg', 'png');
    $target_dir = "images/avatars/";
    $newfilename = $file_basename . '.' . $file_ext;
    $target_file = $target_dir . $newfilename;

    if (in_array($file_ext, $allowed_file_types) && ($filesize < 2000000000)) {
        if (file_exists($target_dir . $newfilename)) {
            echo "You have already uploaded this file.";
        } else {
            move_uploaded_file($_FILES['avatar']['tmp_name'], $target_dir);
            if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $target_file)) {
                echo "There was an error uploading the file, please try again!";
            } else {
                $avaq = "UPDATE portfoliotext SET avatar = '$newfilename'";
                $resava = mysqli_query($conn, $avaq);
                echo "File uploaded successfully.";
            }
        }
    } elseif ($filesize > 2000000000) {
        echo "The file you are trying to upload is too large.";
    } else {
        echo "Only these file typs are allowed for upload: " . implode(', ', $allowed_file_types);
    }
} else {
    echo "Invalid file";
}

1 个答案:

答案 0 :(得分:0)

我收到了一些额外的结束括号和额外的else子句的错误。

也许试试这个:

$filename = $_POST["avatar"];
$expl = explode('.', $filename);
$file_basename = $user; // give new name
$file_ext = $expl[1]; // get file extention
$filesize = $_FILES["avatar"]["size"];
$allowed_file_types = array('gif', 'jpg', 'pjpg', 'png');
$target_dir = "images/avatars/";
$newfilename = $file_basename . '.' . $file_ext;
$target_file = $target_dir . $newfilename;

if (in_array($file_ext, $allowed_file_types) && ($filesize < 2000000000)) {
    if (file_exists($target_dir . $newfilename)) {
        echo "You have already uploaded this file.";
    } else {
        move_uploaded_file($_FILES['avatar']['tmp_name'], $target_dir);
        if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $target_file)) {
            echo "There was an error uploading the file, please try again!";
        } else {
            $avaq = "UPDATE portfoliotext SET avatar = '$newfilename'";
            $resava = mysqli_query($conn, $avaq);
            echo "File uploaded successfully.";
        }
    }
} elseif ($filesize > 2000000000) {
    echo "The file you are trying to upload is too large.";
} else {
    echo "Only these file typs are allowed for upload: " . implode(', ', $allowed_file_types);
}