Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/01/2013, 14:24
navegantes
 
Fecha de Ingreso: abril-2009
Ubicación: Barcelona
Mensajes: 113
Antigüedad: 15 años, 6 meses
Puntos: 9
Pregunta Pasar valores de un input file a PHP

Hola.

Primeramente decir que espero que tengan un buen año a todos :D

Ahora vamos a por el "pequeño" problema que tengo.

Estoy haciendo un formulario en el que tengo que subir un fichero al servidor.

Para validar el formulario uso Jquery validate() y posteriormente serialize() para obtener los datos y pasarlos a PHP.

Todo funciona perfectamente salvo cuando llega el momento de usar un input type="file" Para empezar por lo visto serialize() no es capaz de reconocer dichos campos (o eso me ha parecido entender) y no hay manera de conseguir que PHP reciba los datos.

El campo file tiene su respectivo name e id. ¿Hay alguna manera de pasarle los datos a PHP mediante el $.ajax

Os dejo el código aunque es muy sencillo.

Código Javascript:
Ver original
  1. $('#formPrincipal').validate({
  2.        
  3.         rules:{
  4.             /* el campo file no tiene regla y como los demás funcionan correctamente lo he limpiado */
  5.         },
  6.        
  7.        
  8.         submitHandler:function(){
  9.            
  10.            
  11.             var cadena = $('#formPrincipal').serialize();
  12.             alert(cadena); /*Simple prueba, posteriormente lo quitaré */
  13.            
  14.             $.ajax({
  15.                
  16.                 beforeSend: function(){
  17.                 },
  18.                
  19.                 cache:false,
  20.                 type: "POST",
  21.                 dataType: "json",
  22.                 url:"php/upload.php",
  23.                 data:cadena + "&t=1&accion=add&idr=" + Math.random(),
  24.                 success: function(response){},
  25.                 error:function(){}
  26.             });
  27.             return false;
  28.         },
  29.        
  30.             errorPlacement: function(error, element){
  31.             error.appendTo(element.prev("span").append());
  32.         }
  33.     });

Gracias a todos de antemano.
__________________
- Y lo que todavía me queda por aprender...