Saludos comunidad,
Resulta que soy nuevo en YII, y me encuentro entrampado, por lo que pido su gentil colaboración. Resulta que tengo un formulario, que me permite subir una imagen al servidor, y guardar la ruta de la imagen en la base de datos (MySQL), esto lo hago básicamente en el controlador, de la siguiente manera.
public function actionUpdate()
{
$model=$this->loadModel($id);
$rut = $model->rut;
$ruta = Yii::getPathOfAlias('webroot').'/images/fotocarnet/';
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['Cliente']))
{
$model->attributes=$_POST['Cliente'];
//Valida Directorio fotocarnet
if(!file_exists(Yii::getPathOfAlias('webroot').'/images/fotocarnet/'))
mkdir(Yii::getPathOfAlias('webroot').'/images/fotocarnet/',0777,true);
//Valida JPG
if($model->fotocopiacarnet->getExtensionName() == "jpg"){
$model->fotocopiacarnet->saveAs(Yii::getPathOfAlias('webroot').'/images/fotocarnet/'.$rut.".jpg", 0777); //Guarda imagen en el directorio
$model->fotocopiacarnet = $ruta.$rut.".jpg"; //Transforma valor a guardar en la DB
}
//Valida PNG
else if($model->fotocopiacarnet->getExtensionName() == "png"){
$model->fotocopiacarnet->saveAs(Yii::getPathOfAlias('webroot').'/images/fotocarnet/'.$rut.".png", 0777); //Guarda imagen en el directorio
$model->fotocopiacarnet = $ruta.$rut.".png"; //Transforma valor a guardar en la DB
}
//Guarda el modelo
if($model->save()){
$this->redirect(array('view','id'=>$model->idcliente));
}
}
$this->render('create',array(
'model'=>$model,
));
}
*El actionCreate, es lo mismo
Mi problema es que ahora no sé que hacer con ella, y tengo 2 opciones
-
Al ver los datos, que el campo "fotocopiacarnet" me muestre la imagen
-
Al ver los datos, que el campo "fotocopiacarnet" me permita descargar la imagen
(La verdad es que me gustaría aprender a hacer ambas funciones)
si me dirijo al view view.php (que entiendo que es el encargado de mostrar la información) me encuentro con lo siguiente:
<?php $this->widget('zii.widgets.CDetailView', array(
'data'=>$model,
'attributes'=>array(
'idcliente',
'rut',
'dv',
'nombres',
'aPaterno',
'aMaterno',
'fechanacimiento',
'telefonofijo',
'telefonomovil',
'email',
'direccion',
'niveleducacional',
'fotocopiacarnet',
),
)); ?>
Que entiendo que es quién muestra los datos según el ID. Pero, de que forma puedo hacer que visualice la imagen o la descargue, y no sólo, me muestre la URL que está en la DB?
De antemano
Gracias