尝试重命名时出现PHP Move_uploaded_file()错误

时间:2015-01-21 22:15:44

标签: php

我运行的代码

public function upload() {          
        $fileInfo = pathinfo($_FILES["file"]["name"]);
        move_uploaded_file($_FILES["file"]["tmp_name"], "images/profilePic/" . randomString() . '.' . $fileInfo['extension']);
        return $_FILES['profilePicUpload']['name'];
    }
    function randomString($length = 128) {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $charactersLength = strlen($characters);
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[rand(0, $charactersLength - 1)];
        }
    return $randomString;

运行代码时出现的错误

Notice: Undefined index: file in C:\xampp\htdocs\classes\Picture.php on line 10

Notice: Undefined index: file in C:\xampp\htdocs\classes\Picture.php on line 11

Fatal error: Call to undefined function randomString() in C:\xampp\htdocs\classes\Picture.php on line 11

我找不到任何解决方案,所以我不得不在StackOverflow上发布这个解决方案。

2 个答案:

答案 0 :(得分:0)

如果您的函数是您的类的一部分,那么它是一个类方法,如果是静态调用,您需要在其前面添加$this->self::

... "images/profilePic/" . $this->randomString() . '.' ...

其他错误似乎很清楚:您可能需要始终使用$_FILES['profilePicUpload']而不是$_FILES["file"]

答案 1 :(得分:0)

从您的其他代码中,您似乎正在上传名称&#34; profilePicUpload&#34;而不是&#34;文件&#34;

替换&#34;文件&#34;使用&#34; profilePicUpload&#34;应该解决你的问题。