无法使用[function.move-uploaded-file] CAKEPHP将tmp文件移动到正确的文件夹

时间:2013-02-03 15:37:15

标签: php cakephp file-upload cakephp-2.0

我正在尝试使用cakephp上传文件

我目前正在使用tutorial,但遇到了一些错误,尤其是移动上传文件。

错误:Indirect modification of overloaded property UploadsController::$data has no effect

我看到我的上传确实创建了一个包含其中信息详情的数组,它只是没有将它传递给数据库或移动tmp文件。

这是我的上传功能:

function uploadFile() {
    $file = $this->data['Upload']['file'];
    if ($file['error'] === UPLOAD_ERR_OK) {
        $id = String::uuid();
        if (move_uploaded_file($file['tmp_name'] , APP . 'uploads'.DS.$id)) {
            $this->data['Upload']['uploadID'] = $id;
            $this->data['Upload']['fileName'] = $file['name'];
            $this->data['Upload']['fileSize'] = $file['size'];
            $this->data['Upload']['fileType'] = $file['type'];
            return true;
        }
    }
    return false;
}

任何帮助都会很棒,谢谢!

1 个答案:

答案 0 :(得分:2)

为了获取表单发送的数据(在您的情况下是文件本身),您必须使用 $this->request->data代替$this->data

我希望这会有所帮助。