Foros del Web » Programando para Internet » Jquery »

jQuery.ajax() Enctype

Estas en el tema de jQuery.ajax() Enctype en el foro de Jquery en Foros del Web. Que tal a todos, tengo este script que quiero utilizar para cargar un archivo utilizando jquery, como veran lo estoy diseñando desde 0 pero me ...
  #1 (permalink)  
Antiguo 21/04/2011, 15:18
Avatar de Master_raven  
Fecha de Ingreso: junio-2008
Ubicación: Guatemala City, Guatemala, Guatemala
Mensajes: 95
Antigüedad: 16 años, 6 meses
Puntos: 3
jQuery.ajax() Enctype

Que tal a todos, tengo este script que quiero utilizar para cargar un archivo utilizando jquery, como veran lo estoy diseñando desde 0 pero me tope con un problema, por algun motivo el input file no es enviado, me imagino que es por el enctype.

Mi pregunta es, como puedo adicionar el enctype en el evento $.ajax de jquery, o que puedo hacer para que esto me funcione.

Código Javascript:
Ver original
  1. function upfile() {
  2.     hideshow("loadinpic",1);
  3.     hideshow("loadpic",0);
  4.     $.ajax({
  5.         type: "POST",
  6.         url: "uploader.php",
  7.         data: $("#uploadpic").serialize(),
  8.         dataType: "json",
  9.         success: function(msg){
  10.             if(parseInt(msg.status)==1) {
  11.                 alert("Upload ok");
  12.             } else {
  13.                 hideshow("loadinpic",0);
  14.                 hideshow("loadpic",1);
  15.                 hideshow("error",1);
  16.                 $("#error").html(msg.txt);
  17.             }
  18.         }
  19.     });
  20. }
__________________
<?APRENDIENDO
  #2 (permalink)  
Antiguo 22/04/2011, 03:01
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 10 meses
Puntos: 772
Hola, Master_raven

Muevo tu tema al foro de Frameworks y Plugins Javascript desde Javascript.

Saludos,
  #3 (permalink)  
Antiguo 23/04/2011, 08:53
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años, 1 mes
Puntos: 34
Respuesta: jQuery.ajax() Enctype

Mediante AJAX es imposible enviar archivos. Investiga sobre alguna alternativa (tipo iframe).

Un saludo
  #4 (permalink)  
Antiguo 27/03/2013, 16:25
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: jQuery.ajax() Enctype

Claro que mediante Ajax se puede enviar archivos, solo tienes que configurar el enctype: 'multipart/form-data', y quitar el data serialize es algo parecido a esto
Código HTML:
Ver original
  1. $('#upform').submit(function(e) {
  2.                     e.preventDefault();
  3.                   var dat = new FormData($(this)[0]);
  4.                     $.ajax({
  5.                         beforeSend: function() {
  6.                             $('#msm').html('un momento por favor');
  7.                         },
  8.                         url: pet,
  9.                         type: met,
  10.                         enctype: 'multipart/form-data',
  11.                         data: dat,
  12.                         success: function(resp) {
  13.  
  14.                             $('#msm').html(resp);
  15.                             alert(resp);
  16.  
  17.                         },
  18.                                 cache: false,
  19.                         contentType: false,
  20.                         processData: false,
  21.                         error: function(jqXHR, estado, error) {
  22.                             alert(estado + " " + error);
  23.                         },
  24.                         complete: function(jqXHR, estado) {
  25.  
  26.                             //  alert('completo' + estado);
  27.  
  28.  
  29.  
  30.  
  31.                         }
  #5 (permalink)  
Antiguo 27/03/2013, 16:39
 
Fecha de Ingreso: marzo-2013
Mensajes: 2
Antigüedad: 11 años, 8 meses
Puntos: 0
De acuerdo Respuesta: jQuery.ajax() Enctype

Cita:
Iniciado por yonatanalexis22 Ver Mensaje
Claro que mediante Ajax se puede enviar archivos, solo tienes que configurar el enctype: 'multipart/form-data', y quitar el data serialize es algo parecido a esto
Código HTML:
Ver original
  1. $('#upform').submit(function(e) {
  2.                     e.preventDefault();
  3.                   var dat = new FormData($(this)[0]);
  4.                     $.ajax({
  5.                         beforeSend: function() {
  6.                             $('#msm').html('un momento por favor');
  7.                         },
  8.                         url: pet,
  9.                         type: met,
  10.                         enctype: 'multipart/form-data',
  11.                         data: dat,
  12.                         success: function(resp) {
  13.  
  14.                             $('#msm').html(resp);
  15.                             alert(resp);
  16.  
  17.                         },
  18.                                 cache: false,
  19.                         contentType: false,
  20.                         processData: false,
  21.                         error: function(jqXHR, estado, error) {
  22.                             alert(estado + " " + error);
  23.                         },
  24.                         complete: function(jqXHR, estado) {
  25.  
  26.                             //  alert('completo' + estado);
  27.  
  28.  
  29.  
  30.  
  31.                         }
  #6 (permalink)  
Antiguo 27/03/2013, 16:55
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años, 1 mes
Puntos: 34
Respuesta: jQuery.ajax() Enctype

Claro, ahora sí se puede, pero allá cuando se hizo la pregunta no se podía.

http://www.w3.org/TR/FileAPI/
http://www.w3.org/TR/XMLHttpRequest/#interface-formdata
  #7 (permalink)  
Antiguo 27/03/2013, 17:06
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 8 meses
Puntos: 1284
Respuesta: jQuery.ajax() Enctype

Hola:

Cita:
Iniciado por mariomon17 Ver Mensaje
Claro, ahora sí se puede, pero allá cuando se hizo la pregunta no se podía.

http://www.w3.org/TR/FileAPI/
http://www.w3.org/TR/XMLHttpRequest/#interface-formdata
Porque la pregunta es vieja vamos a cerrar el tema; y tal vez ahora se pueda, pero dudo que en todos los navegadores... un ejemplo simple, explorer bajo window.XP (no admite versiones superiores a la "8")

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Etiquetas: javascript
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:50.