Ahora KumbiaPHP está en Slack!!

Si deseas contactar con nosotros y de forma rápida, estamos en Slack:

http://slack.kumbiaphp.com/

Problemas al subir varias imágenes desde una pantalla.

edited enero 2011 in Beta1
Buenas noches :P
Tengo el siguiente problema:
Cree una pantalla para subir 4 imágenes a un servidor, pues estoy haciendo una aplicación que debe manejar avisos clasificados y por requerimiento de usuarios cada clasificado debe llevar 4 imágenes, el código de la view es el siguiente:

<?php
View::content();
echo form_tag('clasificados/create/',"enctype: multipart/form-data");
?>
<h1>Datos Usuario</h1>
<div id="formulario_reg">
<table summary="Submitted table designs" align="center">

<tfoot>
<tr>
<th scope="row">Formulario de usuarios</th>
<td colspan="4"></td>
</tr>
</tfoot>
<tr>
<td>
<div class="etiqueta-form"><i>(*)</i> Categoria</div>
</td>
<td>
<?php
echo select_tag(
array('clasificados.categoria_id',
'order' => 'nombrecat',
'categorias', 'option' => 'nombrecat',
'include_blank' => 'Selecciona la categoria del clasificado'));?>
</td>
</tr>
<tr>
<td>
<div class="etiqueta-form"><i>(*)</i>Titulo del clasificado</div>
</td>
<td>
<div class="texto-form"><?php echo text_field_tag('clasificados.titulo','class: jsrequired', 'size: 50') ?></div>
</td>
</tr>
<tr>
<td>
<div class="etiqueta-form"><i>(*)</i>Descripción del clasificado</div>
</td>
<td>
<div class="texto-form"><?php echo textarea_tag('clasificados.descripcion','class: jsrequired',"cols: 80", "rows: 20"); ?></div>
</td>
</tr>
<tr>
<td>
<div class="etiqueta-form"><i>(*)</i>Precio del clasificado</div>
</td>
<td>
<div class="texto-form"><?php echo numeric_field_tag('clasificados.precio','class: jsrequired jsvalidate_digits') ?></div>
</td>
</tr>
<tr>
<td>
<div class="etiqueta-form"><i>(*)</i>Foto 1</div>
</td>
<td>
<div class="texto-form">
<?php echo upload_image_tag("imagen1"); ?>
</div>
</td>
</tr>
<tr>
<td>
<div class="etiqueta-form"><i>(*)</i>Foto 2</div>
</td>
<td>
<?php echo upload_image_tag("imagen2"); ?>
</td>
</tr>
<tr>
<td>
<div class="etiqueta-form"<i>(*)</i>Foto 3</div>
</td>
<td>
<?php echo upload_image_tag("imagen3"); ?>
</td>
</tr>
<tr>
<td>
<div class="etiqueta-form"><i>(*)</i>Foto 4</div>
</td>
<td>
<?php echo upload_image_tag("imagen4"); ?>
</td>
</tr>

<tr>
<td>
Publicar Clasificado
</td>
<td>
<?php echo submit_tag('Crear','class: boton') ?>
</td>
</tr>
</tbody>
</table>
</div>
<?php echo end_form_tag() ?>

</div>
</div>
<?php view::partial('tinymce_simple');?>
</body>


Al tornarse complicado manejar diferentes tipos de imágenes, decidimos que vamos a poner como requisito que las imágenes que se van a subir solo sean "JPG" y para llevar a cabo esta idea realicé las siguientes validaciones en el controller:


Load::lib('upload');

$tot = $_FILES["imagen1"]["name"];
$tot2 = $_FILES["imagen2"]["name"];
$tot3 = $_FILES["imagen3"]["name"];
$tot4 = $_FILES["imagen4"]["name"];

echo Flash::success("A ".$tot." B ".$tot2." C". $tot3." D".$tot4);
if(empty ($tot))
{
echo Flash::notice("Señor usuario por favor escoja en la foto 1 una imagen con extensión jpg");
$clasificados->imagen1 = null;
}
else
{
$extension = strrchr($tot,'.');
if($extension != '.jpg')
{
echo Flash::error("Archivo: $tot con extension diferente a jpg");
echo Flash::notice("La aplicacion solo acepta imagenes con extension jpg");
$clasificados->imagen1 = null;
}
else
{
$renamefoto = 'Imagen1_'.md5($tot.date("Y_m_d_H_i_s")).$extension;
Upload::image('imagen1',$renamefoto);
$clasificados->imagen1 = $renamefoto;
echo Flash::success($tot);
}

}

if(empty ($tot2))
{
echo Flash::notice("Señor usuario por favor escoja en la foto 2 una imagen con extensión jpg");
$clasificados->imagen2 = null;
}
else
{
$extension = strrchr($tot2,'.');
if($extension != '.jpg')
{
echo Flash::error("Imagen2 con extension diferente a jpg");
echo Flash::notice("La aplicacion solo acepta imagenes con extension jpg");
echo Flash::notice($tot2);
$clasificados->imagen2 = null;
}
else
{
$renamefoto = 'Imagen2_'.md5($tot2.date("Y_m_d_H_i_s")).$extension;
Upload::image('imagen2',$renamefoto);
$clasificados->imagen2 = $renamefoto;
echo Flash::success($tot2);
}

}
//imagen 3
if(empty ($tot3))
{
echo Flash::notice("Señor usuario por favor escoja en la foto 3 una imagen con extensión jpg");
$clasificados->imagen3 = null;
}
else
{
$extension = strrchr($tot3,'.');
if($extension != '.jpg')
{
echo Flash::error("Archivo: $tot3 con extension diferente a jpg");
echo Flash::notice("La aplicacion solo acepta imagenes con extension jpg");
$clasificados->imagen3 = null;
}
else
{
$renamefoto = 'Imagen2_'.md5($tot3.date("Y_m_d_H_i_s")).$extension;
Upload::image('imagen3',$renamefoto);
$clasificados->imagen3 = $renamefoto;
echo Flash::success($tot3);
}

}
//imagen 3

if(empty ($tot4))
{
echo Flash::notice("Señor usuario por favor escoja en la foto 4 una imagen con extensión jpg");
$clasificados->imagen4 = null;
}
else
{
$extension = strrchr($tot4,'.');
if($extension != '.jpg')
{
echo Flash::error("Archivo: $tot4 con extension diferente a jpg");
echo Flash::notice("La aplicacion solo acepta imagenes con extension jpg");
$clasificados->imagen4 = null;
}
else
{
$renamefoto = 'Imagen4_'.md5($tot4.date("Y_m_d_H_i_s")).$extension;
Upload::image('imagen4',$renamefoto);
$clasificados->imagen4 = $renamefoto;
echo Flash::success($tot4);
}

}


El problema
Resulta que cuando cargo las 4 imágenes con extensión jpg no hay problema, pero cuando hago pruebas y en la imagen 3 y 4 cargo archivos con extensión diferente a jpg o simplemente lo que hago es dejarlas en blanco, resulta que en el momento de hacer submit lo que hace es volverme a cargar la pagina y dejarmela en su estado inicial, eso si, no sube nada al servidor pero pues no hace las validaciones que necesito que se hagan...Hice pruebas en Opera, chrome y firefox y en los tres navegadores me muestra el mismo error.

Agradezco su ayuda.

Comentarios

  • edited noviembre -1
    si puedes intenta pegar el codigo de nuevo a ver si con un poco de color lo podemos leer... xD
    otra opcion es que pongas un enlace del pastebin con tu codigo
Sign In or Register to comment.