CakePHP 2.1を使用していて、サーバーにファイルをアップロードしようとしています。
手動でファイルに名前を付けることで、指定したディレクトリにファイルを正常に移動できますが、ビューのファイルタイプから名前を取得していません:register。
データベーステーブル:ユーザー
Id Auto_Increment
username
file_name
コントローラー:UsersController.php
public function register(){
if ($this->request->is('post')){
// $this->data['User']['resume_file']['tmp_name'] = 'test.php';
// The above statement is working good
if ($this->User->save($this->request->data)){
$this->Session->setFlash('Message : ' . $this->data['User']['resume_file']['tmp_name']);
//debug($this->data['User']['resume_file']['tmp_name']);
// This is giving an error, while inserting
}
}
}
表示:users / register.php
<?php
echo $this->Form->create('User', array('type'=>'file'));
echo $this->Form->input('username');
echo $this->Form->input('file_name', array('type'=>'file', 'label'=>'Upload document') );
echo $this->Form->end('Register');
?>
エラー:データベースエラー
INSERT INTO `sample_db`.`users` (`file_name`, `created`) VALUES (Array, '2012-06-14 08:10:10')
私が見たのは、テーブルに挿入しているときに、CakePHPにその値Array
とエラー Array to string conversion
エラーが挿入されていることです。CakePHPでその値を取得するにはどうすればよいですか。input type : file_name
または、以下のリクエストステートメントで保存する前にデータを変更できる場合。
$this->request->data
私はそれを変えようとしました、以下のステートメントで
$this->data['User']['resume_file']['tmp_name'] = 'test.php';
しかし、同じエラーを返すことはできませんでした。