CakePHP 2.0文件上传不起作用

时间:2012-03-06 13:16:52

标签: php mysql cakephp-2.0 mysql-insert-id

您好我正在尝试创建一个文件上传系统,我可以上传文件,它会将文件名更改为已上传到表格的MYSQL ID。 这是我的代码......

function add() {
    if (!empty($this->data)) {
        $this->Upload->create();
        if ($this->uploadFile() && $this->Upload->save($this->data)) {
            $this->Session->setFlash(__('<p class="uploadflash">The upload has been saved</p>', true));
            $this->redirect(array('action' => 'add'));
        } else {
            $this->Session->setFlash(__('<p class="uploadflash">The upload could not be saved. Please, try again.</p>', true));
        }
    }
        }

function uploadFile() {
    $file = $this->request->data['Upload']['file'];
    if ($file['error'] === UPLOAD_ERR_OK) {
        if (move_uploaded_file($file['tmp_name'], APP.'webroot/files/uploads'.DS.$this->Upload->id.'.mp4')) {
            $this->Upload->save($this->data);
            return true;
        }
    }
    return false;
}

但是文件没有上传到目录,但信息正在上传到sql tabe。

我不明白为什么这个函数$ this-&gt; Upload-&gt; id对文件重命名不起作用? 如果我把它放在语音标记中,那么它会将文件重命名为“$ this-&gt; Upload-&gt; id.mp4”但我希望它更像114.mp4,如果这是保存信息的字段。 有人有什么想法吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

您需要先保存。 $ this-&gt;上传 - &gt; id在您的情况下为空。

为了您的兴趣: $这 - &GT; Upload-&GT;创建();清除$ this-&gt;上传 - &gt; id

另见:

http://api20.cakephp.org/class/model#method-Modelcreate http://api20.cakephp.org/view_source/model#line-1381