Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Subir archivo con AJAX y FileAPI

Estas en el tema de Subir archivo con AJAX y FileAPI en el foro de Frameworks JS en Foros del Web. Hola a todos Utilizo drag and drop y File API de HTML5 para poder arrastrar un archivo a un div. Luego leo el archivo como ...
  #1 (permalink)  
Antiguo 19/09/2011, 08:45
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Subir archivo con AJAX y FileAPI

Hola a todos

Utilizo drag and drop y File API de HTML5 para poder arrastrar un archivo a un div.
Luego leo el archivo como texto, lo meto en una variable que mediante AJAX la paso a un archivo .php que crea el archivo y le mete el contenido de la variable.

Todo funciona correctamente hasta que voy a revisar el archivo y veo que no ocupa mas de 800kb y claro, esta dañado.

Cual es el error?

Un saludo y gracias
  #2 (permalink)  
Antiguo 19/09/2011, 15:21
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Subir archivo con AJAX y FileAPI

a lo sumo no me aventuraría todavía a realizar uploads vía AJAX+ fileAPI, pero de hacerlo leería en modo binario, además de asegurarme de enviar la data por POST.

+info http://blog.zedplan.com/tag/html5
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 20/09/2011, 08:50
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años
Puntos: 34
Respuesta: Subir archivo con AJAX y FileAPI

Al final lo he solucionado utilizando el objeto FormData http://dev.w3.org/2006/webapi/XMLHtt...rface-formdata

Recojo el archivo (ya sea recogiendo el file de un formulario o con un drag and drop) y con el metodo append() introduzco el archivo en el objeto FormData.

Ese objeto lo pongo en la peticion AJAX. Con lo cual en el archivo php recibo el archivo con $_FILE[] y no con $_POST[].

Código Javascript:
Ver original
  1. file =
  2.  
  3. formdata = new FormData();  
  4. formdata.append("files[]", file);
  5.  
  6. $.ajax({  
  7.         url: "upload.php",  
  8.         type: "POST",  
  9.         data: formdata,  
  10.         processData: false,  
  11.         contentType: false,  
  12.         success: function (res) {  
  13.             document.getElementById("response").innerHTML = res;  
  14.         }  
  15.     });

Si hubiese un drag and drop necesitariamos esos metodos.
Y si fuese una imagen y quisieramos mostrarla utilizariamos el objeto FileReader (File API de HTML5).

La info la aprendi de aqui: http://net.tutsplus.com/tutorials/ja...les-with-ajax/

Un saludo y gracias

Etiquetas: ajax, fileapi, php, php+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 05:52.