Subir varias imagenes con lib upload

152 views
Skip to first unread message

Avilac3

unread,
May 24, 2015, 1:43:54 PM5/24/15
to kum...@googlegroups.com
hola quiero saber cual es la forma adecuada para subir un grupo a imagenes a mi carpeta upload utilizando la lib upload

Julian Serrano

unread,
May 27, 2015, 3:35:50 PM5/27/15
to kum...@googlegroups.com
A ver si alguien nos puede echar una mano, me vendría de perlas saberlo también! ajajaj

Iván Meléndez

unread,
May 27, 2015, 4:06:00 PM5/27/15
to kum...@googlegroups.com
Bueno en realidad es crear varios un input type file en forma de array

name=“upload[]” id=“upload_1”

name=“upload[]” id=“upload_2”

name=“upload[]” id=“upload_3”

y en php se recibe un array para recorrerlo con un foreach, el proceso es igual al de la carga de un solo archivo, pero el problema es el siguiente:

post_max_size y upload_max_size

Si están configurados para 10 MB y envías 5 imágenes de 3MB te generará un error debido a que el tamaño de los archivos se suman


-- 
Iván Meléndez
Sent with Airmail

Gaston Mascialino

unread,
May 27, 2015, 4:23:13 PM5/27/15
to kum...@googlegroups.com
Hola Julián!
Yo lo manejo desde el controlador, no se si es lo más adecuado pero me funciona bien.
Te paso el código completo del método "crear" con la posibilidad de subir la cantidad de archivos que necesites:

   public function crear() {
$this->titulo = 'Crear Producto';
        try {
//$productos = new Productos();
if (Input::hasPost('productos')) {
                $productos = new Productos(Input::post('productos'));
$productos->begin();
// Tratamiento de imagenes
$ruta = dirname(APP_PATH) . '/public/img/upload/productos/';
$imagen = array(
array('nombre' => NULL),
array('nombre' => basename($_FILES["img1"]['name']), 'up' => Upload::factory('img1', 'image')),
array('nombre' => basename($_FILES["img2"]['name']), 'up' => Upload::factory('img2', 'image'))
);
$nombreimagen[] = array();
$uploads[] = array();
$upload = null;
$upload_error = false;
                for($i = 1; $i < count($imagen); ++$i) {
                    if($imagen[$i]['nombre'] != NULL){
$file = $imagen[$i]['up'];
$file->setPath($ruta);
//$file->setMaxSize('512 K');
$file->setExtensions(array('jpg', 'png', 'gif'));
if ($file->isUploaded()){ 
$nombreimagen[$i]['nombre'] = $productos->nombre . ' ' . $imagen[$i]['nombre'];
if ($file->save($nombreimagen[$i]['nombre'])) {
if($i == 1) $productos->img1 = $nombreimagen[1]['nombre'];
if($i == 2) $productos->img2 = $nombreimagen[2]['nombre'];
$uploads[$i]['file'] = $nombreimagen[$i]['nombre'];
$upload = true;
}else{
$upload_error = true;
}
}else{
$upload_error = true;
}
                    }
}
// FIN Tratamiento de imagenes
            
// Carga del Producto en la DB
if ($productos->save()) {
if($upload_error == true){
Flash::warning('Problemas con la Imagen...!!!');
Flash::warning('El Producto no fué cargado...!!!');
// Error: volvemos todo atras (registro en db y uploads)
for($i = 1; $i < count($uploads); ++$i) {
if(isset($uploads[$i]['file'])) $file->remove($ruta, $uploads[$i]['file']);
}
$productos->rollback();
} else {
Flash::valid('El Producto fué cargado Exitosamente...!!!');
//Flash::warning('No se cargó ninguna imagen');
$productos->commit();
return Router::redirect();
}
} else {
Flash::warning('El Producto no fué cargado...!!!');
// Error: volvemos todo atras (registro en db y uploads)
for($i = 1; $i < count($uploads); ++$i) {
if(isset($uploads[$i]['file'])) $file->remove($ruta, $uploads[$i]['file']);
}
$productos->rollback();
}
// FIN Carga del Producto en la DB
    
            }
        } catch (KumbiaException $e) {
            View::excepcion($e);
        }
    }

Espero te sirva...
Saludos!!




--
Viva KumbiaPHP Framework!
http://www.kumbiaphp.com/
Ha recibido este mensaje porque está suscrito a Grupo "KumbiaPHP Framework" de Grupos de Google.
Para obtener más opciones, visita este grupo en http://groups.google.com/group/kumbia?hl=es.
---
Has recibido este mensaje porque estás suscrito al grupo "KumbiaPHP Framework" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a kumbia+un...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.


Julian Serrano

unread,
May 28, 2015, 11:23:32 AM5/28/15
to kum...@googlegroups.com
Buenisimo ejemplo Tote! Comentado y todo jeje. Gracias!! cualquier cosa te digo
Message has been deleted
Message has been deleted

Avilac3

unread,
Jun 15, 2015, 3:14:08 AM6/15/15
to kum...@googlegroups.com
Tote como manejas tu view ?

Gaston Mascialino

unread,
Jun 15, 2015, 2:07:16 PM6/15/15
to kum...@googlegroups.com
Desde el view con el helper form:

<?php echo Form::file('img1') ?>
<?php echo Form::file('img2') ?>

etc,etc...

Y desde el controller lo recuperas así:
basename($_FILES["img1"]['name']),
basename($_FILES["img2"]['name'])

Saludos!




LEONEL SOMOHANO

unread,
Feb 27, 2016, 9:43:58 PM2/27/16
to KumbiaPHP Framework
alguien a usado un input file con la opcion multiple=true, e estado tratando y no puedo con la libreria upload y dw_upload y no e podido saludos!!


El domingo, 24 de mayo de 2015, 12:43:54 (UTC-5), Avilac3 escribió:
Reply all
Reply to author
Forward
0 new messages