无法将文件上传到我的网站[PHP]

时间:2017-09-03 21:44:09

标签: php html

我是PHP的新手,我遵循了这方面的教程,但我无法完成这项工作。当我上传图片时,它会给我发送失败的消息,但为什么我没有真正看到任何问题,我尝试将代码写入2次但仍然遇到同样的问题。

此代码的想法是能够上传图像,一旦上传实际上是用户个人资料图片(该功能的其他文件中还有更多代码),但它不起作用,因为图片没有上传,您可以尝试上传任何类型的图片,但它只会显示upload = failed消息,如果(move_uploaded_file($ fileTmpName,$ fileDestination))不是,则应该发生这种情况。对,但为什么它不对呢?我真的不理解那些人,因为这个,我的项目已被禁止了2天。我搜索过,有些人谈到了权限,但我真的不知道它们的意思,我怎么能允许上传或编辑文件。

所以我真正的问题是我无法将想要上传的文件移到"上传"文件,它显示upload = failed而不是upload = success,因为它无法将上传文件移动到" uploads"文件夹中。

这是它开始提出问题的地方:

if (move_uploaded_file($fileTmpName, $fileDestination)) {
    $sql = "UPDATE profileimg SET status=0 WHERE userid='$id'";
    $result = mysqli_query($conn, $sql);
    header("Location: ../index.php?upload=success");
}
else {
    header("Location: ../index.php?upload=failed");
}

感谢您的任何想法!

这是完整的代码:

<?php
session_start();
include_once 'dbh-inc.php';
$id = $_SESSION['user_id'];

if (isset($_POST['submit'])) {
    $file = $_FILES['avatar'];

    $fileName = $_FILES['avatar']['name'];
    $fileTmpName = $_FILES['avatar']['tmp_name'];
    $fileSize = $_FILES['avatar']['size'];
    $fileError = $_FILES['avatar']['error'];
    $fileType = $_FILES['avatar']['type'];

    $fileExt = explode('.', $fileName);
    $fileActualExt = strtolower(end($fileExt));

    $allowed = array('jpg', 'jpeg', 'png', 'ico');

    if (in_array($fileActualExt, $allowed)) {
        if ($fileError === 0) {
            if ($fileSize < 500000) {
                $fileNameNew = "profile".$id.".".$fileActualExt;

                $fileDestination = 'uploads/'.$fileNameNew;
                if (move_uploaded_file($fileTmpName, $fileDestination)) {
                    $sql = "UPDATE profileimg SET status=0 WHERE userid='$id'";
                    $result = mysqli_query($conn, $sql);
                    header("Location: ../index.php?upload=success");
                }
                else {
                    header("Location: ../index.php?upload=failed");
                }
            }
            else {
                header("Location: ../index.php?upload=toobigfile");
            }
        }
        else {
            header("Location: ../index.php?upload=error");
        }
    }
    else {
        header("Location: ../index.php?upload=invalidtype");
    }
}

1 个答案:

答案 0 :(得分:1)

哇伙计们我刚发现问题...我不知道为什么这是问题,但在$ fileDestination ='uploads'。$ fileNameNew;我不得不把$ fileDestination ='../ uploads'。$ fileNameNew;

if ($fileSize < 500000) {
            $fileNameNew = "profile".$id.".".$fileActualExt;

            $fileDestination = '../uploads/'.$fileNameNew;
            if (move_uploaded_file($fileTmpName, $fileDestination)) {
                $sql = "UPDATE profileimg SET status=0 WHERE userid='$id'";
                $result = mysqli_query($conn, $sql);
                header("Location: ../index.php?upload=success");
            }
            else {
                header("Location: ../index.php?upload=failed");
            }
        }