无法将图片上传到服务器

时间:2016-03-23 16:22:55

标签: php image-uploading

由于某种原因,函数set_file()和save_profile_pic()似乎实际上并没有运行,我无法弄清楚原因。功能本身在创建新用户时工作正常,但由于某种原因他们不在这里工作。

我也试过这个:

if(!$user -> set_file($_FILES['profile_pic'])) {
    redirect("somewherenonexistant.php");
}

还有:

if($user -> set_file($_FILES['profile_pic'])) {
    redirect("somewherenonexistant.php");
}

只是看看set_file()是否真的有效,但代码永远不会运行...无论我是否测试set_file()为true还是false,它都不会到达redirect()行...当然它必须是真还是假?!

我完全不知道代码为什么不运行。据推测,我现在已经盯着它看了太长时间而且无法找到它,所以我真的需要一些帮助。

以下是代码:

if(!empty($_GET['id'])) {
    $user = User::get_by_id($_GET['id']);

    if(isset($_POST['update'])) {
        if($user) {
            $user -> username = $_POST['username'];
            $user -> password = $_POST['password'];
            $user -> first_name = $_POST['first_name'];
            $user -> last_name = $_POST['last_name'];

            if(!empty($_FILES['profile_pic']['size'])) {
                $user -> set_file($_FILES['profile_pic']);
                $user -> save_profile_pic();
                $user -> save();

                redirect("edit_user.php?id={$user -> id}");
            } else {
                $user -> save();
            }
        }
    }
} else {
    redirect('users.php');
}

这是set_file()函数:

public function set_file($file) {
        if(empty($file) || !$file || !is_array($file)) {
            $this -> errors[] = 'No file was uploaded';
            return false;
        } else if($file['error'] != 0) {    //!= 0 == UPLOAD_ERR_OK
            $this -> errors[] = $this -> upload_errors[$file['error']];
            return false;
        } else {
            $this -> profile_pic = basename($file['name']);
            $this -> tmp_path = $file['tmp_name'];
        }

        return true;
}

感谢。

0 个答案:

没有答案