Que sabes de GNU/Linux?

miércoles, 21 de enero de 2009

Ejemplo de Guardado de Imagenes u archivos con cakephp

mysql> DESCRIBE bdbanners;
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| nombre | varchar(50) | NO | | | |
| descripcion | varchar(80) | NO | | | |
| image | blob | YES | | NULL | |
| type | varchar(30) | NO | | | |
| size | int(11) | NO | | | |
+-------------+-------------+------+-----+---------+----------------+
/*
*VISTA VER FOTOS
*/






echo "

".$bdbanners_info['Bdbanner']['id']."

";
echo "Nombre:";
echo "

".$bdbanners_info['Bdbanner']['nombre']."

";
echo "Descripcion:";
echo "

".$bdbanners_info['Bdbanner']['descripcion']."

";
echo $html->link('Volver Atras','/bdbanners/');
?>


/*
*VISTA INDEX
*/

Listado de Fotos Cargadas





















Id Nombre Foto Descripcion Borrar Descargar
link($dbbanner['Bdbanner']['nombre'],'/bdbanners/verfotos/'.$dbbanner['Bdbanner']['id']); ?> link("Borrar",'/bdbanners/borrar/'.$dbbanner['Bdbanner']['id']); ?> link("Descargar",'/bdbanners/dowload/'.$dbbanner['Bdbanner']['id']); ?>



link("Nueva Foto",'/bdbanners/ingresar');?>


/*
*VISTA INGRESAR
*/

Ingresar nueva Foto a la Base de datos



echo $form->create('Bdbanner',array('action'=>'ingresar','type'=>'file'));
echo $form->input('nombre',array('lable'=>'Nombre'));
echo $form->input('descripcion',array('lable'=>'Decripcion'));
echo $form->input('image',array('type'=>'file','label'=>'Imagen'));
echo $form->end('Guardar Imagen');

echo $html->link('Volver Atras','/bdbanners/');

?>


/*
*MODELO
*/
class Bdbanner extends AppModel{
var $name = 'Bdbanner';
var $validate = array('nombre'=>array('rule'=>'alphaNumeric','message'=>'Solo se aceptan Letras y Números'));
}
?>

/*
*CONTROLADOR
*/

class BdbannersController extends AppController{
var $name = 'Bdbanners';

/*
*Funcion: permite visualizar la informacion principal
*/
function index(){
$this->set('dbbanners',$this->Bdbanner->findAll());
}

/*
*Funcion: permite ingresar un nuevo archivo del tipo banner
*/
function ingresar(){
if(!empty($this->data)){
/*Permite cargar la imagen y determinar si no fue pasado un archivo no permitido*/
if(!is_uploaded_file($this->data['Bdbanner']['image']['tmp_name'])){
$this->flash('El archivo se encuentra con error','/bdbanners/');
return;
}
$fileData = fread(fopen($this->data['Bdbanner']['image']['tmp_name'], "r"),
$this->data['Bdbanner']['image']['size']);

$this->data['Bdbanner']['type']=$this->data['Bdbanner']['image']['type'];
$this->data['Bdbanner']['size']=$this->data['Bdbanner']['image']['size'];
$this->data['Bdbanner']['image'] =$fileData;

if($this->Bdbanner->save($this->data)){
$this->flash('Los datos Fueron Guardados Satisfactoriamente','/bdbanners/');
}else{
$this->flash('No se Pudieron Guardar los datos Intente Nuevamente','/bdbanners/');
}

}
}

/*
*Funcion: permite ver la foto
*/
function verfotos($id = null){
$this->Bdbanners->id = $id;
$this->set('bdbanners_info',$this->Bdbanner->read());

}
/*
*Funcion: Permite borrar una entrada
*/
function borrar($id = null){
$this->Bdbanner->del($id);
$this->flash('La imagen fue borrada satisfactoriamente','/bdbanners');

}

/*
*Funcion: permite recuperar o descargar los datos
*/
function dowload($id){
$file = $this->Bdbanner->findById($id);
header('Content-type: ' . $file['Bdbanner']['type']);
echo $file['Bdbanner']['image'];
/*header('Content-length: ' . $file['Bdbanner']['size']);
header('Content-Disposition: attachment; filename="'.$file['Bdbanner']['nombre'].'"');*/

exit();
}
}
?>

No hay comentarios:

Publicar un comentario