私はcakephpが初めてで、cakephp 2.3で簡単なファイルアップロードを作成しようとしています。ここに私のコントローラーがあります
public function add() {
if ($this->request->is('post')) {
$this->Post->create();
$filename = WWW_ROOT. DS . 'documents'.DS.$this->data['posts']['doc_file']['name'];
move_uploaded_file($this->data['posts']['doc_file']['tmp_name'],$filename);
if ($this->Post->save($this->request->data)) {
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to add your post.');
}
}
}
そして私のadd.ctp
echo $this->Form->create('Post');
echo $this->Form->input('firstname');
echo $this->Form->input('lastname');
echo $this->Form->input('keywords');
echo $this->Form->create('Post', array( 'type' => 'file'));
echo $this->Form->input('doc_file',array( 'type' => 'file'));
echo $this->Form->end('Submit')
名、姓、キーワード、およびファイルの名前を DB に保存しますが、app/webroot/documents に保存したいファイルが保存されません。誰か助けてもらえますか? ありがとう
アップデート
thaJeztah私はあなたが言ったようにやったが、私が間違っていなければ、いくつかのエラーが発生する
public function add() {
if ($this->request->is('post')) {
$this->Post->create();
$filename = WWW_ROOT. DS . 'documents'.DS.$this->request->data['Post']['doc_file']['name'];
move_uploaded_file($this->data['posts']['doc_file']['tmp_name'],$filename);
if ($this->Post->save($this->request->data)) {
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Unable to add your post.');
}
}
}
そして私のadd.ctp
echo $this->Form->create('Post', array( 'type' => 'file'));
echo $this->Form->input('firstname'); echo $this->Form->input('lastname');
echo $this->Form->input('keywords');
echo $this->Form->input('doc_file',array( 'type' => 'file'));
echo $this->Form->end('Submit')
エラーは
注(8): 配列から文字列への変換 [CORE\Cake\Model\Datasource\DboSource.php、1005 行目]
データベース エラー エラー: SQLSTATE[42S22]: 列が見つかりません: 1054 不明な列 'フィールド リスト' の列 '配列'
SQL クエリ: INSERT INTO first.posts (名、姓、キーワード、doc_file) 値 ('dfg'、'cbhcfb'、'dfdbd'、配列)
と Victor 私もあなたのバージョンをやった、それも動作しません。