carga de archivos en cakephp 2.3
Soy nuevo en cakephp y estoy tratando de crear una carga simple de archivos con cakephp 2.3 aquí está mi controlador
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.');
}
}
}
y mi 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')
guarda el primer nombre, el apellido, las palabras clave y el nombre del archivo en la base de datos, pero el archivo que deseo guardar en la aplicación / webroot / documents no está guardando, ¿alguien puede ayudar? Gracias
Actualizar
ThaJeztah Hice lo que dijiste, pero da algunos errores. Aquí está el controlador si no estoy equivocado.
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.');
}
}
}
y mi 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')
y los errores son
Aviso (8): conversión de matriz a cadena [CORE \ Cake \ Model \ Datasource \ DboSource.php, línea 1005]
Error de base de datos Error: SQLSTATE [42S22]: Columna no encontrada: 1054 Columna desconocida 'Array' en 'lista de campos'
Consulta SQL: INSERTE INTO first.posts (nombre, apellido, palabras clave, archivo_doc) VALORES ('dfg', 'cbhcfb', 'dfdbd', Array)
Y Victor, también hice tu versión, tampoco funciona.