0

こんにちは、ファイルをアップロードできるファイル アップロード システムを作成しようとしています。ファイル名が、テーブルにアップロードされた 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 テーブルにアップロードされています。

この関数 $this->Upload->id がファイルの名前変更に対して機能しない理由がわかりませんか? スピーチマークに入れると、ファイルの名前が「$this->Upload->id.mp4」に変更されますが、情報が保存されているフィールドである場合は、114.mp4 のようにしたいと思います。誰にもアイデアはありますか?

前もって感謝します

4

1 に答える 1

0

最初に保存する必要があります。あなたの場合、 $this->Upload->id は空です。

ご参考までに: $this->Upload->create(); $this->Upload->id をクリアします

以下も参照してください。

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

于 2012-03-06T13:24:23.640 に答える