Foros del Web » Programando para Internet » Javascript »

Problema subiendo una imagen con un formulario y javascript

Estas en el tema de Problema subiendo una imagen con un formulario y javascript en el foro de Javascript en Foros del Web. Hola. Explico mi problema y luego pego el código para que lo veáis. Estoy utilizando jquery 1.4 para validar un formulario en el que se ...
  #1 (permalink)  
Antiguo 29/01/2010, 03:05
 
Fecha de Ingreso: diciembre-2009
Mensajes: 40
Antigüedad: 14 años, 4 meses
Puntos: 0
Problema subiendo una imagen con un formulario y javascript

Hola.

Explico mi problema y luego pego el código para que lo veáis.
Estoy utilizando jquery 1.4 para validar un formulario en el que se sube una imágen.
Con javascript validaba sin problemas hasta que añadí el campo "file". A partir de ahí, parece que el javascript no le pasa a mi php (el que uso para validar los datos) el campo imagen, si lo hace en cambio si desactivo javascript.

Alguien sabe como puede solventarse este error? Si es problema de mi código o es que no hay manera de validar el formulario de esta manera.
Supongo que se debe a algún error estúpido de programación, porque me extrañaría que no se pudiera hacer.

Paso a pegar el código.

Este es el código del formulario.

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" lang="es" xml:lang="es">
  4.     <title>Untitled</title>
  5.     <script type="text/javascript" src="js/jquery-1.4.min.js"></script>
  6.     <script type="text/javascript">
  7.     //<![CDATA[
  8.         $(document).ready(function(){
  9.             $('#form1').submit(function(e) {register();e.preventDefault();});
  10.         });
  11.         function register(){
  12.             hideshow('loading',1);
  13.             $.ajax({type:"POST",url:"act_upload.php?js=1",data: $('#form1').serialize(),dataType:"json",
  14.                 success: function(msg){
  15.                     if(parseInt(msg.status)==1){window.location=msg.txt;}else if(parseInt(msg.status)==0){error(1,msg.txt);}
  16.                     hideshow('loading',0);
  17.             }});
  18.         }
  19.         function hideshow(el,act){
  20.             if(act) $('#'+el).css('visibility','visible');
  21.             else $('#'+el).css('visibility','hidden');
  22.         }
  23.         function error(act,txt){
  24.             hideshow('error',act);
  25.             if(txt) $('#error').html('<p class="error_form">'+txt+'<\/p>');
  26.         }
  27.     //]]>
  28.     </script>
  29.     <style type="text/css">#loading{visibility: hidden;}</style>
  30. </head>
  31.  
  32.     <form name="form1" id="form1" enctype="multipart/form-data" method="post" action="act_upload.php" />
  33.         <p><input type="file" size="32" name="catalogo" value="" /></p>
  34.         <div id="error"><p class="error_form">Los campos marcados con * son obligatorios.</p></div>
  35.         <input type="submit" name="Submit" value="Subir" /><img id="loading" src="img/ajax.gif" alt="enviando..." />
  36.     </form>
  37. </body>
  38. </html>

Este es el código del php para validar, posteo lo básico para ver el error.
Código PHP:
Ver original
  1. <?php
  2. include("class.upload.php");
  3. if (isset($_FILES["catalogo"])){die('{"status":"0","txt":"est&aacute; la imagen:"}');}else{die('{"status":"0","txt":"Catalogo:La imagen NO est&aacute;"}');}
  4. $handle = new Upload($_FILES["catalogo"]);?>

Cuando se llega a la validación por javascript, siempre devuelve que la image NO está, y cuando se desactiva javascript, se llega a que la imágen si está.

Es que no llega ni siquiera a hacer la subida del fichero, simplemente es que no llega el campo con la imágen.

Alguna idea?

Ayuda porfavor, llevo muchas horas perdidas con esto y tengo que sacarlo ya o me van a dar una buena patadita en el culo XD

Gracias a todos por adelantado.
  #2 (permalink)  
Antiguo 29/01/2010, 06:53
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Problema subiendo una imagen con un formulario y javascript

no puedes pasar formularios con archivos por AJAX debido a que este no tiene acceso al IO (no puede leer el archivo).

entre las formas de simular AJAX para el envio de archivos al server, está en hacerlo con un iframe oculto, pero con AJAX no puedes, lo siento.
  #3 (permalink)  
Antiguo 01/02/2010, 09:47
 
Fecha de Ingreso: diciembre-2009
Mensajes: 40
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema subiendo una imagen con un formulario y javascript

Al final lo he "solucionado" creando un formulario a parte en el que solomente subo la imagen, la verdad es que no se me ocurre otra forma de hacerlo.
  #4 (permalink)  
Antiguo 10/02/2010, 06:49
 
Fecha de Ingreso: diciembre-2009
Mensajes: 40
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: Problema subiendo una imagen con un formulario y javascript

Nadie conoce alguna manera de subir imagenes a traves de algún tipo de validador o algo para no tener que usar esta forma tan "cutre" de hacerlo?

Gracias.

Etiquetas: formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:10.