Problema Con Blob

Saludos comunidad!

Resulta que tengo un problema con el manejo de imágenes en formato Blob, lo que sucede es que necesito guardar y mostrar imágenes en este formato, he buscado info en Internet, sobre todo estos 2 links:

URL 1

URL 2

En mi código, tengo lo siguiente:

Modelo:




public function rules()

{

     return array(

          array('usr_fotoCarnet', 'file', 'types'=>'jpg, gif, png', 'allowEmpty' => true),

          //Resto del código

     );

{



Mi Controlador:




array('allow', // allow authenticated user to perform 'create' and 'update' actions

      'actions'=>array('create','update','admin','delete', 'loadImage'),

      'users'=>array('@'),

),

//resto del código




public function actionCreate()

	{

		$model=new Usuario;


		// Uncomment the following line if AJAX validation is needed

		// $this->performAjaxValidation($model);


		if(isset($_POST['Usuario']))

		{

                    $model->attributes=$_POST['Usuario'];

                        

                    $model->usr_fotoCarnet=CUploadedFile::getInstance($model,'usr_fotoCarnet');

                    

                    if($model->save())

                        $this->redirect(array('view','id'=>$model->usr_id));

		}


		$this->render('create',array(

                    'model'=>$model,

		));

	}



_view.php




<? echo CHtml::image(Yii::app()->controller->createUrl('usr_fotoCarnet/loadImage', array('id'=>$this->model->id))); ?>



_form.php




<?php $form = $this->beginWidget('bootstrap.widgets.TbActiveForm', array(

        'layout' => TbHtml::FORM_LAYOUT_HORIZONTAL,

        'enableAjaxValidation'=>true,

        'htmlOptions'=>array(

            'enctype'=>'multipart/form-data'

        )

    )); 

?>



Con todo esto, "aparentemente" estoy guardando correctamente la imagen como blob, ya que si veo el campo, guardado, me aparece "[BLOB - 17 B]", lo cual me hace pensar, que al menos hay algo guardado, pero cuando quiero mostrar, sólo me muestra el nombre de la imagen que se subió.

Tendré sólo un error al momento de mostrar? o también al de guardar?

Saludos

Para mostrar imágenes yo hago esto:




echo CHtml::image('rutaImagen'. $data->nombreFoto, "");



No creo q sea problema del dato BLOB.

Un saludo.

Muchas gracias por responder, pero tengo una duda, la forma que estás mostrando la imagen, ‘rutaImagen’, esto es porque estás guardando la imagen en algún directorio del servidor, con Blob, guardo la imagen en la base de datos, por lo que no podría mostrarlo de esta forma no?

Saludos

Cuánta razón tienes!!!!!!

En este wiki te indican como hacerlo:

BLOB Images

Creo q te servirá.

Un saludo.

Muchas gracias por la respuesta, y disculpa la demora.

Justamente he visto ese tutorial que me has mostrado, y resulta que si intento hacerlo, sigue sin funcionar, resulta que cree la imagen loadImage, pero en vez de devolverme la imagen, me devuelve "150x150_mysql.png" que es el nombre de la imagen que subí, a que se puede deber esto?

Saludos

Te podría ayudar si subieras el código q te falla, todo!!!!

Seguramente se te haya pasado algo.

Un saludo.

Hola, si investigas la funcion




$model->usr_fotoCarnet=CUploadedFile::getInstance($model,'usr_fotoCarnet');



veras que sirve para que en el campo usr_fotoCarnet de tu tabla, se guarde el nombre del archivo que estas subiendo por lo que tienes que investigar como recibir el archivo que subes y no el obtener el nombre del archivo que subes.