我在一个网站上工作,这将使我能够将文件上传到服务器,我试图将文件重命名为与信息一起插入的相应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;
}
这些是我网站上发生的错误,
注意(8):间接修改重载属性UploadsController :: $ data无效[APP / Controller / uploads_controller.php,第58行] 注意(8):未定义的索引:eventname [APP / Controller / uploads_controller.php,第59行] 注意(8):间接修改重载属性UploadsController :: $ data无效[APP / Controller / uploads_controller.php,第59行] 注意(8):未定义索引:说明[APP / Controller / uploads_controller.php,第60行] 注意(8):间接修改重载属性UploadsController :: $ data无效[APP / Controller / uploads_controller.php,第60行]
我真的不知道发生了什么? 我还应该使用mysqli_insert_id()函数而不是mysql_insert_id()吗?我真的不知道mysqli_insert_id()是如何工作的,任何帮助请大家好吗???
答案 0 :(得分:6)
您正试图操纵在Cake 2.0中只读的$this->data
。您应该使用Cake 2.0中引入的新CakeRequest
对象。
因此$this->data
变为:$this->request->data
。
对于mysql_insert_id()
,我不确定将数据保存到数据库表的位置。 Cake将最后插入的记录的id
存储在$this->ModelName->id
中,因此您也可以使用它。