Foros del Web » Programando para Internet » Javascript »

Subir imagenes con ajax

Estas en el tema de Subir imagenes con ajax en el foro de Javascript en Foros del Web. Buenas foro. Estoy tratando de subir imagenes con ajax a mi server. Esto al parecer lo he logrado con un script que encontre, pero ahora ...
  #1 (permalink)  
Antiguo 30/05/2013, 09:33
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Subir imagenes con ajax

Buenas foro.

Estoy tratando de subir imagenes con ajax a mi server.
Esto al parecer lo he logrado con un script que encontre, pero ahora mi problema es como hacer para que la pagina no se recargue.

Si en el script añado el evento change en addEventListener la pagina no se recarga pero solo se enviaria la imagen y necesito que se mande todo el formulario al hacer click en el submit sin que se recargue la pagina.

Código Javascript:
Ver original
  1. (function () {
  2.     var input = document.getElementById("images"),
  3.         formdata = false;
  4.  
  5.     if (window.FormData) {
  6.         formdata = new FormData();
  7.         var btnLoad = document.getElementById("btn").style.display = "block";
  8.     }
  9.    
  10.     btnLoad.addEventListener("click", function (evt) {
  11.         document.getElementById("response").innerHTML = "Uploading . . ."
  12.         var i = 0, len = this.files.length, img, reader, file;
  13.    
  14.         for ( ; i < len; i++ ) {
  15.             file = this.files[i];
  16.    
  17.             if (!!file.type.match(/image.*/)) {
  18.                 if ( window.FileReader ) {
  19.                     reader = new FileReader();
  20.                     reader.onloadend = function (e) {
  21.                         showUploadedItem(e.target.result, file.fileName);
  22.                     };
  23.                     reader.readAsDataURL(file);
  24.                 }
  25.                 if (formdata) {
  26.                     formdata.append("images", file);
  27.                 }
  28.             }  
  29.         }
  30.        
  31.         if (formdata) {
  32.             $.ajax({
  33.                 url: "upload.php",
  34.                 type: "POST",
  35.                 data: formdata,
  36.                 processData: false,
  37.                 contentType: false,
  38.                 success: function (res) {
  39.                     document.getElementById("response").innerHTML = res;
  40.                 }
  41.             });
  42.         }
  43.     }, false);
  44. }());

Tengo poco utilizando ajax. Espero me puedan ayudar.
__________________
Lo imposible solo cuesta un poco mas
  #2 (permalink)  
Antiguo 30/05/2013, 09:35
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: Subir imagenes con ajax

tendrías que serializar todo el form con jQuery y evitar el submit normal, sea devolviendo false en el evento onsubmit del form, o usando preventDefault()

ten en cuenta que estás usando FileApi y no todos lo navegadores lo soportan
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 30/05/2013, 10:21
Avatar de jandrogdz  
Fecha de Ingreso: julio-2012
Ubicación: public $Guadalajara
Mensajes: 397
Antigüedad: 11 años, 10 meses
Puntos: 12
Respuesta: Subir imagenes con ajax

gracias por contestar y como hago eso de serealizar el form no tengo tanta experiencia en ajax.

Me podrias explicar como hacer eso.
__________________
Lo imposible solo cuesta un poco mas
  #4 (permalink)  
Antiguo 30/05/2013, 11:28
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: Subir imagenes con ajax

consulta la documentación de jQuery.serialize(), es realmente simple, la idea sería enviar todo el form junto con el binario de la imagen, aunque no se si se pueda con jquery
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Etiquetas: ajax
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 04:03.