Ver Mensaje Individual
  #4 (permalink)  
Antiguo 09/07/2013, 14:59
jarios
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 13 años
Puntos: 5
Respuesta: simular ajax para subir archivos al servidor

De entrada tendras que conocer que para enviar mediante ajax tendras que usar en javascript el objeto XMLHttpRequest (Me limito solo a este pero al final te dejo documentacion donde puedes ver que para otros navegadores antiguos es necesario crear otro objeto (w3schools).

Código Javascript:
Ver original
  1. xmlhttp=new XMLHttpRequest();
  2. xmlhttp.open("GET","demo_get.asp",true);
  3. xmlhttp.send();

Para hacer el envio de un fichero se usa POST. Se puede ver un ejemplo de envio de datos mediante POST:

Código Javascript:
Ver original
  1. xmlhttp.open("POST","ajax_test.asp",true);
  2. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  3. xmlhttp.send("fname=Henry&lname=Ford");

Ya solo queda saber que para enviar archivos hay que hacer uso del objeto FormData.

Código Javascript:
Ver original
  1. xmlhttp.open("POST","ajax_test.asp",true);
  2. xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
  3. var formData = new FormData();
  4. formData.append("thefile", file);
  5. xmlhttp.send(formData);

Y finalmente hay que mirar lo que se recibe a cambio para comprobar que todo se ha hecho correctamente.

Links:
http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp
http://stackoverflow.com/questions/6211145/upload-file-with-ajax-xmlhttprequest
https://developer.mozilla.org/es/docs/XMLHttpRequest/FormData
https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects?redirectlocale=en-US&redirectslug=Web%2FAPI%2FFormData%2FUsing_FormD ata_Objects

Saludos.