Facebook Fanpage


  • Enviar formulario con ajax jquery

    En el siguiente ejemplo, os mostraré como enviar un formulario vía AJAX, este proceso facilitará las consultas necesarias a PHP, todo ello...
  • Descifrando la Seguridad: El Fascinante Mundo de los Criptosistemas de Clave Pública

    Entrada 1: La Revolución de la Criptografía Asimétrica¿Alguna vez te has preguntado cómo puedes enviar información confidencial a través de internet...
  • Cómo configurar un servidor FTP sobre CentOS 7

    Instalación y puesta en marcha de vsftpd Instalar vsftpd en CentOS 7 es sencillo, en esta versión todavía se sigue usando Yum, el gestor de...
  • Oracle Dumpdir – Import, Export y el uso de Directorios.

    Oracle Dumpdir  Import, Export y el uso de Directorios. Cuando tenemos diferentes objetos de la base, ya sea una tabla, datos, etc y...
  • Solución a ORA-65096: invalid common user or role name en Oracle

    Solución a ORA-65096: invalid common user or role name en Oracle Hola a todos, hoy explicaré como solucionar un problema común en Oracle al...
  • Asignar permisos correctos a carpetas 755 y ficheros 644 de forma masiva

    Asignar permisos correctos a carpetas 755 y ficheros 644 de forma masiva Por defecto, en el FTP de una web los permisos deben ser los siguientes:...
  • Publicar aplicación WAR/JSP/SERVLET/TOMCAT/MYSQL en servidor dedicado/vps cPanel

    Publicar aplicación war con conexión a mysql.1. Ingresar al cPanel2. En la opción "Mysql Bases de datos", crear una base de datos, un usuario de...
  • Generar jar con NetBeans incluyendo Bibliotecas Externas Java

    Hola amigos, después de buscar un poco acerca de como incluir las librerías que utilizamos en nuestros proyectos Java...
  • Subir imagen al servidor con Yii Framework y eliminar imagenes del servidor

    En esta ocacion les traigo la manera de como subir imagenes al servidor y una ves subidas las imagenes como eliminarlas del servidor, este ejemplo es...
  • crear host virtual

    Cómo crear un VirtualHost en ubuntu y apache En este post veremos qué es y cómo crear un virtual host utilizando ubuntu y apache. ¿Qué es un...
  • Enviar formulario con ajax jquery

    En el siguiente ejemplo, os mostraré como enviar un formulario vía AJAX, este proceso facilitará las consultas necesarias a PHP, todo ello...
  • Descifrando la Seguridad: El Fascinante Mundo de los Criptosistemas de Clave Pública

    Entrada 1: La Revolución de la Criptografía Asimétrica¿Alguna vez te has preguntado cómo puedes enviar información confidencial a través de internet...
Previous Next

sábado, 21 de septiembre de 2013

Subir imagen al servidor con Yii Framework y eliminar imagenes del servidor

En esta ocacion les traigo la manera de como subir imagenes al servidor y una ves subidas las imagenes como eliminarlas del servidor, este ejemplo es la continuacion del ejemplo anterior pero mejorado, asi que sin mas aqui esta el codigo.


Vista:
archivo _form.php

Código PHP:
..//array de opciones del form...'htmlOptions' => array(
        
'enctype' => 'multipart/form-data',
    ),
...
..
//Otros Elementos..
..
<
div class="row">
        <?
php echo $form->labelEx($model,'imagen'); ?>        <?php echo CHtml::activeFileField($model'imagen'); ?>  //con esto levantamos la imagen
        <?php echo $form->error($model,'imagen'); ?></div>
<?php if($model->isNewRecord!='1'){ ?><div class="row">
     <?php echo CHtml::image(Yii::app()->request->baseUrl.'/banner/'.$model->imagen,"imagen",array("width"=>200)); ?>  // La Imagen se muestra aquí si la página es la página de actualización
</div>
 <?php } ?>
 
..
..
Otros elementos
..
.. 
Modelo:
solo es necesario agregar una linea en el metodo rules() en el Modelo, de la siguiente manera:

Código PHP:
array('imagen''file','types'=>'jpg, gif, png''allowEmpty'=>true'on'=>'update'), 
array('titulo, imagen''length''max'=>255'on'=>'insert,update'), 
Controladores
Código PHP:
    public function actionCreate()
    {
        
$model=new Banner;

        
// Uncomment the following line if AJAX validation is needed
        // $this->performAjaxValidation($model);

        
if(isset($_POST['Banner']))
        {
            
$rnd rand(0,9999);  // Generamos un numero aleatorio entre 0-9999
            
$model->attributes=$_POST['Banner'];

            
$subiendoImagen=CUploadedFile::getInstance($model,'imagen');
            
$imgNombre "{$rnd}-{$subiendoImagen}";  // numero aleatorio  + nombre de archivo
            
$model->imagen $imgNombre;


            if(
$model->save()){
                
$subiendoImagen->saveAs(Yii::app()->basePath.'/../images/banner/'.$imgNombre);
                
$this->redirect(array('view','id'=>$model->id));
            }
        }
        
$this->render('create',array(
            
'model'=>$model,
        ));
    } 
Código PHP:
    public function actionUpdate($id)
    {
        
$model=$this->loadModel($id);

        if(isset(
$_POST['Banner']))
        {
            
$rnd rand(0,9999);  // Generamos un numero aleatorio entre 0-9999
            
$_POST['Banner']['imagen'] = $model->imagen;
            
$model->attributes=$_POST['Banner'];

            
$subiendoImagen=CUploadedFile::getInstance($model,'imagen');
            
$imgNombre "{$rnd}-{$subiendoImagen}";  // numero aleatorio  + nombre de archivo
            
$model->imagen $imgNombre;

            if(
$model->save()){
                if(!empty(
$subiendoImagen)){
                    
$subiendoImagen->saveAs(Yii::app()->basePath.'/../images/banner/'.$imgNombre);
                }
                
$this->redirect(array('view','id'=>$model->id));
            }
        }
        
$this->render('update',array(
            
'model'=>$model,
        ));
    } 




De paso, para borrar los archivos del servidor lo conseguí haciendo lo siguiente, (seguro no es la mejor forma pero funciona)

Código PHP:
    public function actionDelete($id)
    {
        
$model $this->loadModel($id);
        
unlink(Yii::app()->basePath.'/../images/banner/'.$model->imagen);
        
$this->loadModel($id)->delete();

        
// if AJAX request (triggered by deletion via admin grid view), we should not redirect the browser
        
if(!isset($_GET['ajax']))
            
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
    } 





Fuente: Aqui

0 comentarios:

Publicar un comentario