CakePHP 2.0文件上传,$ data无效

001*_*221 2 mysql cakephp-2.0

我正在一个网站上工作,这将使我能够将文件上传到服务器,我试图将文件重命名为与信息一起插入的相应mysql ID.

它有点工作,但每次上传文件时,它都会重写最后一个上传的文件.

这是我的代码

   function uploadFile() {
    $file = $this->data['Upload']['file'];
    $pid = mysql_insert_id();
    if ($file['error'] === UPLOAD_ERR_OK) {
        if (move_uploaded_file($file['tmp_name'], APP.'webroot/files/uploads'.DS."$pid.mp4")) {
            $this->data['Upload']['name'] = $file['name'];
            $this->data['Upload']['eventname'] = $file['evetname'];
            $this->data['Upload']['description'] = $file['description'];
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

这些是我网站上发生的错误,

注意(8):间接修改重载属性UploadsController :: $ data无效[APP/Controller/uploads_controller.php,第58行]注意(8):未定义索引:eventname [APP/Controller/uploads_controller.php,第59行] Notice(8):间接修改重载属性UploadsController :: $ data无效[APP/Controller/uploads_controller.php,第59行]注意事项(8):未定义索引:description [APP/Controller/uploads_controller.php,line [60]注意事项(8):间接修改重载属性UploadsController :: $ data无效[APP/Controller/uploads_controller.php,第60行]

我真的不知道发生了什么?我还应该使用mysqli_insert_id()函数而不是mysql_insert_id()吗?我真的不知道mysqli_insert_id()是如何工作的,任何帮助请大家好吗???

men*_*sch 6

你试图操纵$this->data哪些只在Cake 2.0中读取.您应该使用CakeRequestCake 2.0中引入的新对象.

所以$this->data变成:$this->request->data.

至于mysql_insert_id(),我不确定将数据保存到数据库表的位置.Cake存储id最后插入的记录$this->ModelName->id,因此您也可以使用它.