0

ユーザーが作成されると、ファイルをアップロードします。

このユーザーを編集したいのですが、保存してファイルを選択しない場合、つまり元のファイルを保持したい場合、次のエラーが発生します。

SQL Query: UPDATE `societario`.`attorneys` SET `nome` = 'teste', `empresa` = 'Sotreq', `filial` = 'Matriz', `unidade` = 'Energia', `alcada` = 'Até 50.000', `validade` = '', `arquivo` = Array WHERE `societario`.`attorneys`.`id` = '42'

ユーザーがファイルを選択しない場合、保存しないでください$this->Attorney->data['Attorney']['arquivo']

私のedit.php

function edit($id = null) {



    $this->Attorney->id = $id;
    $this->set('poderes',$this->Attorney->Power->find('list', array('fields' => 'resumo')));

         if ($this->request->is('get')) {
            $this->request->data = $this->Attorney->read();
        } else {

            if ($this->Attorney->save($this->request->data)) {

            $targetFolder = 'societario/app/webroot/uploads/'; // Relative to the root
            $tempFile = $this->request->data['Attorney']['arquivo']['tmp_name'];
            $targetPath = $_SERVER['DOCUMENT_ROOT'] . $targetFolder;
            $targetFile = rtrim($targetPath,'/') . '/' . $this->request->data['Attorney']['arquivo']['name'];;
            move_uploaded_file($tempFile,$targetFile);
            $this->Attorney->updateAll(
             array('arquivo' => "'".$this->request->data['Attorney']['arquivo']['name'] ."'"),
            array('id' => $id));    

            $this->Session->setFlash('Usuário editado com sucesso!', 'default', array('class' => 'flash_sucess'));
            $this->redirect(array('action' => 'usuarios'));
    }
}

}

ファイルをアップロードしようとしても機能しません。同じエラー。

4

2 に答える 2

2

まず、そのフィールドを除外するには、save を呼び出す前に、配列内のそのキーの設定を解除します。

unset($this->Attorney->data['Attorney']['arquivo']);

次に、ファイルのアップロードについては、プラグインの使用を検討する必要があります。https://github.com/josegonzalez/uploadを使用します

于 2013-05-20T02:36:52.657 に答える
0

見る:

`arquivo` = Array

生の MySQL クエリは配列を処理しません。配列を MySQL が理解できるデータ型に処理する必要があります。

于 2013-05-20T00:12:49.850 に答える