Edición de «Subida de Archivos e Imagenes»

De KumbiaPHP Framework Wiki

Advertencia: no has iniciado sesión. Tu dirección IP se hará pública si haces cualquier edición. Si inicias sesión o creas una cuenta, tus ediciones se atribuirán a tu nombre de usuario, además de otros beneficios.

Puedes deshacer la edición. Antes de deshacer la edición, comprueba la siguiente comparación para verificar que realmente es lo que quieres hacer, y entonces guarda los cambios para así efectuar la reversión.

Revisión actual Tu texto
Línea 1: Línea 1:
[[Categoría:Tutoriales KumbiaPHP]]
+
#REDIRECT [[Enviar Formulario Usando Ajax]]
 +
 
 +
== Subida de Archivos e Imagenes ==
  
 
===Descripción===
 
===Descripción===
Línea 5: Línea 7:
 
En el siguiente ejemplo veremos la manera de subir archivos e imagenes con las librerias de kumbiaphp, para efectos del ejemplo vamos a crear dos formularios, uno para subir un archivo y otro para subir una imagen.
 
En el siguiente ejemplo veremos la manera de subir archivos e imagenes con las librerias de kumbiaphp, para efectos del ejemplo vamos a crear dos formularios, uno para subir un archivo y otro para subir una imagen.
  
=== Librerias a Utilizar ===
+
===Librerias a Utilizar===
  
'''Upload:''' libreria de kumbia para la subida de archivos e imagenes, mediante ella se pueden especificar criterios a validar al subir el archivo, como el tamaño maximo que debe tener, las extensiones permitidas, entre otros.
+
Upload:
  
=== Creando los Formularios ===
+
== Subida de Archivos e Imagenes ==
  
El primero paso es crear dos formularios, uno para subir un archivo "zip" ó "rar"y otro para subir una imagen png,gif ó jpg :
+
===Descripción===
  
<source lang=php>
+
En el siguiente ejemplo veremos la manera de subir archivos e imagenes con las librerias de kumbiaphp, para efectos del ejemplo vamos a crear dos formularios, uno para subir un archivo y otro para subir una imagen.
 
 
<!-- archivo /views/archivos/index.phtml -->
 
 
 
<?php View::content() ?>
 
<br/>
 
<h1>Subida de Archivo</h1>
 
<?php echo Form::openMultipart('archivos/archivo') ?>
 
    Ingrese un archivo .zip ó .rar:
 
    <?php echo Form::file('archivo') ?>
 
    <?php echo Form::hidden('oculto', NULL, '1') //para saber si se envió el form ?>
 
    <?php echo Form::submit('subir') ?>
 
<?php echo Form::close() ?>
 
<br/>
 
<br/>
 
<h1>Subida de Imagen</h1>
 
<?php echo Form::openMultipart('archivos/imagen') ?>
 
    Ingrese una imagen .jpg , .gif ó .png :
 
    <?php echo Form::file('archivo') ?>
 
    <?php echo Form::hidden('oculto', NULL, '1') //para saber si se envió el form ?>
 
    <?php echo Form::submit('subir') ?>
 
<?php echo Form::close() ?>
 
 
 
</source>
 
 
 
[[Archivo:Form_archivos_imagenes.PNG]]
 
 
 
'''NOTA:''' es importante que en ves llamar a '''Form::open()''' se llame a '''Form::openMultipart()''' para que se cree un formulario que permita la subida de los archivos, de lo contrario el framework nos informara de dicho requerimiento :-)
 
 
 
=== Controlador y Acciones ===
 
 
 
Crearemos el controlador ('''ArchivoController''') con tres acciones, la accion '''index''' que solo mostrará el formulario y las acciones '''archivo''' y '''imagen''' para subir archivos e imagenes respectivamente:
 
 
 
<source lang=php>
 
<?php
 
 
 
class ArchivosController extends AppController {
 
 
 
    public function archivo() {
 
        View::select('index');  //para mostrar siempre la vista con los formularios
 
        if (Input::hasPost('oculto')) {  //para saber si se envió el form
 
            $archivo = Upload::factory('archivo');//llamamos a la libreria y le pasamos el nombre del campo file del formulario
 
            $archivo->setExtensions(array('zip','rar')); //le asignamos las extensiones a permitir
 
            if ($archivo->isUploaded()) {
 
                if ($archivo->save()) {
 
                    Flash::valid('Archivo subido correctamente...!!!');
 
                }
 
            }else{
 
                    Flash::warning('No se ha Podido Subir el Archivo...!!!');
 
            }
 
        }
 
    }
 
 
 
    public function imagen() {
 
        View::select('index');  //para mostrar siempre la vista con los formularios
 
        if (Input::hasPost('oculto')) {  //para saber si se envió el form
 
 
 
            //llamamos a la libreria y le pasamos el nombre del campo file del formulario
 
            //el segundo parametro de Upload::factory indica que estamos subiendo una imagen
 
            //por defecto la libreria Upload trabaja con archivos...
 
            $archivo = Upload::factory('archivo', 'image');
 
            $archivo->setExtensions(array('jpg', 'png', 'gif'));//le asignamos las extensiones a permitir
 
            if ($archivo->isUploaded()) {
 
                if ($archivo->save()) {
 
                    Flash::valid('Imagen subida correctamente...!!!');
 
                }
 
            }else{
 
                    Flash::warning('No se ha Podido Subir la imagen...!!!');
 
            }
 
        }
 
    }
 
 
 
}
 
 
 
 
 
</source>
 
 
 
La libreria '''Upload''' por defecto se encargará de subir los archivos al directorio '''public/files/upload''' cuando trabajamos con archivos y en el directorio '''public/img/upload''' cuando trabajamos con imagenes, pero estos directorios pueden ser cambiados usando el metodo '''setPath''' de la libreria, ademas se encargá de realizar validaciones de extensiones, tamaños minimos y maximos de imagenes, peso (tamaño) minimo y/o maximo de los archivos a subir, etc.
 
 
 
 
 
 
 
=== Ejemplo en funcionamiento ===
 
 
 
Si se presiona el boton de guardar sin haber seleccionado un archivo, tendremos un mensaje como el siguiente:
 
 
 
[[Archivo:Form_archivos_imagenes_2.PNG‎]]
 
  
 +
===Librerias a Utilizar===
  
Si se intenta subir un archivo que no sea ni .zip ó .rar se obtene el siguiente mensaje:  
+
Upload:
  
[[Archivo:Form_archivos_imagenes_3.PNG‎]]
 
  
----
+
[[Categoría:Tutoriales]]

Ten en cuenta que todas las contribuciones a KumbiaPHP Framework Wiki pueden ser editadas, modificadas o eliminadas por otros colaboradores. Si no deseas que las modifiquen sin limitaciones, no las publiques aquí.
Al mismo tiempo, asumimos que eres el autor de lo que escribiste, o lo copiaste de una fuente en el dominio público o con licencia libre (véase Proyecto:Derechos de autor para más detalles). ¡No uses textos con copyright sin permiso!

Para editar esta página, responde la pregunta que aparece abajo (más información):

Cancelar Ayuda de edición (se abre en una ventana nueva)