Problemas al subir varias imágenes desde una pantalla.

edited enero 2011 in Beta1
Buenas noches <!-- s:P --><img src="{SMILIES_PATH}/icon_razz.gif" alt=":P" title="Razz" /><!-- s: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:
      &lt;?php
            View&#58;&#58;content();
            echo form_tag('clasificados/create/',&quot;enctype&#58; multipart/form-data&quot;);
      ?&gt;
      &lt;h1&gt;Datos Usuario&lt;/h1&gt;
      &lt;div id=&quot;formulario_reg&quot;&gt;
      &lt;table summary=&quot;Submitted table designs&quot; align=&quot;center&quot;&gt;

            &lt;tfoot&gt;
                    &lt;tr&gt;
                            &lt;th scope=&quot;row&quot;&gt;Formulario de usuarios&lt;/th&gt;
                            &lt;td colspan=&quot;4&quot;&gt;&lt;/td&gt;
                    &lt;/tr&gt;
            &lt;/tfoot&gt;
&lt;tr&gt;
                      &lt;td&gt;
                          &lt;div class=&quot;etiqueta-form&quot;&gt;&lt;i&gt;(*)&lt;/i&gt; Categoria&lt;/div&gt;
                      &lt;/td&gt;
                        &lt;td&gt;
                            &lt;?php
                               echo select_tag(
                                    array('clasificados&#46;categoria_id',
                                    'order' =&gt; 'nombrecat',
                                    'categorias', 'option' =&gt; 'nombrecat',
                                    'include_blank' =&gt; 'Selecciona la categoria del clasificado'));?&gt;
                        &lt;/td&gt;
                     &lt;/tr&gt;
                      &lt;tr&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;etiqueta-form&quot;&gt;&lt;i&gt;(*)&lt;/i&gt;Titulo del clasificado&lt;/div&gt;
                        &lt;/td&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;texto-form&quot;&gt;&lt;?php echo text_field_tag('clasificados&#46;titulo','class&#58; jsrequired', 'size&#58; 50') ?&gt;&lt;/div&gt;
                        &lt;/td&gt;
                      &lt;/tr&gt;
                      &lt;tr&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;etiqueta-form&quot;&gt;&lt;i&gt;(*)&lt;/i&gt;Descripción del clasificado&lt;/div&gt;
                        &lt;/td&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;texto-form&quot;&gt;&lt;?php echo textarea_tag('clasificados&#46;descripcion','class&#58; jsrequired',&quot;cols&#58; 80&quot;, &quot;rows&#58; 20&quot;); ?&gt;&lt;/div&gt;
                        &lt;/td&gt;
                      &lt;/tr&gt;
                      &lt;tr&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;etiqueta-form&quot;&gt;&lt;i&gt;(*)&lt;/i&gt;Precio del clasificado&lt;/div&gt;
                        &lt;/td&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;texto-form&quot;&gt;&lt;?php echo numeric_field_tag('clasificados&#46;precio','class&#58; jsrequired jsvalidate_digits') ?&gt;&lt;/div&gt;
                        &lt;/td&gt;
                      &lt;/tr&gt;
                     &lt;tr&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;etiqueta-form&quot;&gt;&lt;i&gt;(*)&lt;/i&gt;Foto 1&lt;/div&gt;
                        &lt;/td&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;texto-form&quot;&gt;
                                &lt;?php echo upload_image_tag(&quot;imagen1&quot;); ?&gt;
                            &lt;/div&gt;
                        &lt;/td&gt;
                     &lt;/tr&gt;
                     &lt;tr&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;etiqueta-form&quot;&gt;&lt;i&gt;(*)&lt;/i&gt;Foto 2&lt;/div&gt;
                        &lt;/td&gt;
                        &lt;td&gt;
                            &lt;?php echo upload_image_tag(&quot;imagen2&quot;); ?&gt;
                        &lt;/td&gt;
                    &lt;/tr&gt;
                    &lt;tr&gt;
                        &lt;td&gt;
                            &lt;div class=&quot;etiqueta-form&quot;&lt;i&gt;(*)&lt;/i&gt;Foto 3&lt;/div&gt;
                        &lt;/td&gt;
                        &lt;td&gt;
                            &lt;?php echo upload_image_tag(&quot;imagen3&quot;); ?&gt;
                        &lt;/td&gt;
                    &lt;/tr&gt;
                  &lt;tr&gt;
                      &lt;td&gt;
                          &lt;div class=&quot;etiqueta-form&quot;&gt;&lt;i&gt;(*)&lt;/i&gt;Foto 4&lt;/div&gt;
                      &lt;/td&gt;
                      &lt;td&gt;
                            &lt;?php echo upload_image_tag(&quot;imagen4&quot;); ?&gt;
                      &lt;/td&gt;
                  &lt;/tr&gt;
                 
                  &lt;tr&gt;
                      &lt;td&gt;
                          Publicar Clasificado
                      &lt;/td&gt;
                      &lt;td&gt;
                               &lt;?php echo submit_tag('Crear','class&#58; boton') ?&gt;
                      &lt;/td&gt;
                  &lt;/tr&gt;
    &lt;/tbody&gt;
      &lt;/table&gt;
      &lt;/div&gt;
      &lt;?php echo end_form_tag() ?&gt;

             &lt;/div&gt;
         &lt;/div&gt;
    &lt;?php view&#58;&#58;partial('tinymce_simple');?&gt;
 &lt;/body&gt;

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&#58;&#58;lib('upload');

$tot =  $_FILES&#91;&quot;imagen1&quot;&#93;&#91;&quot;name&quot;&#93;;
                $tot2 = $_FILES&#91;&quot;imagen2&quot;&#93;&#91;&quot;name&quot;&#93;;
                $tot3 = $_FILES&#91;&quot;imagen3&quot;&#93;&#91;&quot;name&quot;&#93;;
                $tot4 = $_FILES&#91;&quot;imagen4&quot;&#93;&#91;&quot;name&quot;&#93;;

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

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

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

                }
                //imagen 3

                if(empty ($tot4))
                {
                    echo Flash&#58;&#58;notice(&quot;Señor usuario por favor escoja en la foto 4 una imagen  con extensión jpg&quot;);
                    $clasificados-&gt;imagen4 = null;
                }
                else
                {
                    $extension = strrchr($tot4,'&#46;');
                    if($extension != '&#46;jpg')
                    {
                        echo Flash&#58;&#58;error(&quot;Archivo&#58; $tot4 con extension diferente a jpg&quot;);
                        echo Flash&#58;&#58;notice(&quot;La aplicacion solo acepta imagenes con extension jpg&quot;);
                        $clasificados-&gt;imagen4 = null;
                    }
                    else
                    {
                        $renamefoto = 'Imagen4_'&#46;md5($tot4&#46;date(&quot;Y_m_d_H_i_s&quot;))&#46;$extension;
                        Upload&#58;&#58;image('imagen4',$renamefoto);
                        $clasificados-&gt;imagen4 = $renamefoto;
                        echo Flash&#58;&#58;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 9:17
    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.